Seite 1 von 1

Sprite object not intialized??? 0o

Verfasst: 28.02.2009 06:08
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.. :|

Verfasst: 28.02.2009 07:42
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.

Verfasst: 28.02.2009 08:40
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...

Verfasst: 28.02.2009 10:13
von HeX0R
Wenn anim = 3, wird deine erste If-Anweisung True, und damit anim auf 4 erhöht...

Verfasst: 28.02.2009 10:57
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.

Verfasst: 28.02.2009 16:17
von Kaeru Gaman
:lol: man sollte also auch nicht morgens um sechs fragen beantworten...

stimmt, das Hintertürchen hatte ich ganz übersehen.