Sprites & grafik på den Micromite kamrat (7 / 13 steg)
Steg 7: Animera Sprites
Mot slutet av den sista sidan, började vi flytta våra sprite ballong runt skärmen med en för/nästa slinga.
Detta ger grundläggande "livet" för våra sprite, men nu Låt oss ta saker ett steg längre.
Låt oss göra det Disney animatörer har gjort i år. Genom att snabbt bläddra sprite sig till ytterligare ramar, kan vi skapa en illusion av rörelse och animation. Om du har kikade på DEMO. SPR-fil, du har faktiskt fyra olika ballonger, börjar på sprite 4, vardera med en liten avancemang.
Lägg till följande nya subrutiner till botten av ditt program under LoadSpr befäl...
Sub-animera sprite, start, slut, fördröjning
I2C skriva PC, 6-0, 1, 219, sprite, start, slut, fördröjning
End Sub
Sub MoveSpeed sprite, xdelay, ydelay, xinc, yinc
I2C skriva PC, 0, 7, 1, 220, sprite, xdelay, ydelay, xinc, yinc
End Sub
Dessa två nya subrutiner kan du animera och flytta sprites i "autopilot" läge. Dessa kommandon är perfekt för situationer när du behöver bakgrund åtgärd ske automatiskt. Som rullande loggarna i spelet fallgrop eller simning hajarna i spelet Jungle jakt.
Låt oss ställa våra ballong i rörelse.
Lägg till följande kommandon under raden LoadSpr 1,4,100,175,0,0 i programmet:
Animera 1,4,7,30 "animera ballong - ramar 4-7, hastighet 30
MoveSpeed 1,3,5,1, -1 ' sätta ballongen i rörelse
Vår ballong är nu animera sprite ramar 4-7 i hastighet 30, och resande över och uppåt!
Kommandot animera är förmodligen mycket tydligt.
Animera Program Sprite, börja sprite bild, slutet sprite bild, hastighet.
MoveSpeed subrutinen tar lite närmare granskning.
MoveSpeed Program Sprite, xdelay, ydelay, xinc, yinc
Xdelay och Xdelay kan ställas in med hastigheter mellan 0 och 50. (0 stoppas, och 50 är långsammast)
Xinc och Yinc är vanligtvis inställd på något mellan -2..-1..1..2.
XINC, -1 som är kvar av nuvarande position, 1 är till höger i nuvarande position av pixel
YINC, -1 är 1 pixel från position, 1 ner 1 pixel från nuvarande position.
Ju högre nummer används i Xinc och Yinc, desto snabbare spriten kommer att flytta.
Igen, båda dessa kommandon är idealisk när sprites måste vara en del av bakgrunden.
Märker hur ballongen helt enkelt figursätts runt skärmen när den når kanten?