Sprite object not intialized??? 0o

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Sprite object not intialized??? 0o

Beitrag von jojo1541 »

Hallo Leute...
Kann sein, dass ich um 5 Uhr morgens einfach etwas benebelt bin, aber jedesmal, wenn ich diesen Code durchlaufen lasse, bekomme ich den Fehler:
The specified #Sprite is not intialized.

Code: Alles auswählen

Repeat
  
  ExamineKeyboard()

  ClearScreen(RGB(0,0,0))
 
  event = WaitWindowEvent()
  
  
    If anim > 0 And anim < 4
      counter + 1
      
      If counter > 2
        anim + 1
        counter = 0
      EndIf
    
    Else
      anim = 1
    
    EndIf
 
  
  
  DisplayTransparentSprite(anim,50,50)
  FlipBuffers()
  
  
Until event = #PB_Event_CloseWindow
Seh ich grad nur was saudummes nich, oda passt am Code was nicht?
Ich hab alle drei Bilder korrekt geladen und eigtl. müsste alles passen, aber es klappt nicht.. :|
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn ich den code laufen lasse, bekomme ich auch einen error :mrgreen:


also, ich kann so nicht sagen, woran es liegt.
naheliegend wäre tatsächlich, dass das laden nicht funktioniert.
hast du denn wirklich in die Spritenummern 1-3 geladen?
teste auch die Rückgabewerte der Load-Befehle.
das Laden meckert nicht im Debugger, wenn es nicht funktioniert, das muss man abfragen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

hab das auch schon mir issprite() getestet, die Sprites werden auf jeden Fall geladen...

und die loadschleife:

Code: Alles auswählen

For i = 1 To 3
LoadSprite(i,"bild" + Str(i) + ".bmp")
TransparentSpriteColor(i,RGB(255,255,255))
Next

Aber mal noch ne andere Frage:

Wenn ich via Bedingungen die Position einer Figur abfrage, also mit einem Level als Data-Block mit Tilewerten von 1 - 40.
Muss ich dann wirklich alle Tiles einzeln mit Bedingungen testen?
Da wird mein Code nämlich ganz schön lahm und unübersichtlich...

Code: Alles auswählen

      If jump_height =< 0
         If LevelDaten(((player_y +64)+ scroll_y) /32,((player_x +16)+ scroll_x) /32)= 1 
            jump = 0
            ;genaue position setzen, falls die figur im tile steht
            temp = (player_y + scroll_y) /32
            scroll_y = (temp*32)-player_y
         EndIf
      EndIf
      If jump_height =< 0
         If LevelDaten(((player_y +64)+ scroll_y) /32,((player_x +16)+ scroll_x) /32)= 2
            jump = 0
            ;genaue position setzen, falls die figur im tile steht
            temp = (player_y + scroll_y) /32
            scroll_y = (temp*32)-player_y
         EndIf
      EndIf
;und so weiter und so weiter für jedes Tile... das macht den Code lahm...
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Wenn anim = 3, wird deine erste If-Anweisung True, und damit anim auf 4 erhöht...
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

ah stimmt, man sollte morgens um 5 keinen Code mehr erstellen... mit

Code: Alles auswählen

anim > 0 and anim < 3
klappts perfekt.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

:lol: man sollte also auch nicht morgens um sechs fragen beantworten...

stimmt, das Hintertürchen hatte ich ganz übersehen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten