Naja, es ist nicht gerade sinnvoll alle Bilder aufeinander zu zeichnen.
ich hab das bisher so verstanden:
Code: Alles auswählen
Repeat
clearscreen($000000)
;irgend welche schiffe malen,...
;Collision abfragen, wenn positiv die Explosion zeichnen
Flipbuffers()
forever
Wenn du es aber so machst, stapelst du die Bilder der Explosion übereinander. Außerdem wird die Explosion dann wahrscheinlich nur einmal angezeigt, d.h. sie ist nur einen Schleifendurchlauf lang sichtbar.
Besser wäre, wenn du nach der Kollisionsüberprüfung eine Variable füllst, die nur bei einer Kollision einen Wert ungleich null beinhaltet.
dann könntest du bei einem neuen Schleifendurchlauf überprüfen, ob eine Explosion gezeichnet werden muss.
z.B.:
Code: Alles auswählen
Repeat
ClearScreen(...)
if Explosion > 0
displaysprite(#Explosion_Bild,explosionx,explosiony)
endif
...
if Kollision(...)
Explosion = 1
explosionx = koords
explosiony = ry
endif
um dann eine bestimmte zeit zwischen die einzelnen Animationsbilder zu setzen, musst du eine weitere Variable mit der aktuellen zeit füllen:
Code: Alles auswählen
if Kollision(...)
Explosion = 1
explosionx = koords
explosiony = ry
aktuelle_Zeit = elapsedmilliseconds()
endif
und so weiter ... und so weiter
dann erhältst du zum schluss in etwa das:
Code: Alles auswählen
Repeat
ClearScreen(...)
if Explosion > 0
displaysprite(Explosion,explosionx,explosiony)
endif
...
if Kollision(...)
Explosion = 1
explosionx = koords
explosiony = ry
aktuelle_Zeit = elapsedmilliseconds()
endif
if aktuelle_Zeit + Zeit_zwischen_den_Bildern < elapsedmilliseconds()
if Explosion < 7
Explosion + 1
else
Explosion = 0
endif
endif
ABER, dieser Code kann gleichzeitig nur EINE Explosion zeigen, kommt eine neue dazu, wird diese angezeigt und die alte verschwindet sofort. Wenn du mehrere Explosionen zur selben Zeit hast, musst du mit Listen arbeiten!!!!!
Im letzten Beispiel ist die Variable "Explosion" zum einen der Auslöser für die Darstellung, aber AUCH die Spritenummer!!!!
Dementsprechend musst du die SpriteID anpassen!!
mit der Variable "Zeit_zwischen_den_Bildern" steuerst du die Dauer der Animation (in ms!!)
Viel Spassss
