Stap 7: Animeren Sprites
Tegen het einde van de laatste pagina, we begonnen met het verplaatsen van onze sprite ballon rond het scherm met behulp van een voor/NEXT-lus.
Dit voorziet de basic "life" onze sprite, maar nu laten we gaan een stap verder.
Laten we doen wat Disney animators jarenlang hebben gedaan. Door snel flipping de sprite zelf extra frames, kunnen we het creëren van de illusie van beweging en animatie. Als u hebt peeked op de DEMO. SPR bestand, je hebt eigenlijk vier verschillende ballonnen, basisgewicht van sprite 4, elk met een kleine vooruitgang.
Voeg de volgende nieuwe subroutines aan de bodem van uw programma onder het commando van LoadSpr...
Sub Animate sprite,start,end,delay I2C WRITE PC,0,6,1,219,sprite,start,end,delay End Sub Sub MoveSpeed sprite,xdelay,ydelay,xinc,yinc I2C Write PC,0,7,1,220,sprite,xdelay,ydelay,xinc,yinc End Sub
Deze twee nieuwe subroutines kunnen animeren en bewegen sprites in "automatische piloot"-modus. Deze opdrachten zijn perfect voor situaties wanneer u moet achtergrond actie automatisch gebeuren. Zoals de rollende logs in het spel Pitfall, of de haaien zwemmen in het spel Jungle Hunt.
Laten we onze ballon in gang gezet.
Voeg de volgende opdrachten onder de LoadSpr 1,4,100,175,0,0 -lijn in uw programma:
Animate 1,4,7,30 'Animate Balloon - frames 4-7, speed 30 MoveSpeed 1,3,5,1,-1 'Put the Balloon in motion
Onze ballon is nu sprite frames, 4-7 aan snelheid 30, en reizen over en opwaartse animeren!
De animatie opdracht is waarschijnlijk zeer duidelijk.
Programma Sprite animeren, starten sprite afbeelding, einde sprite afbeelding, snelheid.
De subroutine MoveSpeed neemt een beetje nader onderzoek.
MoveSpeed programma Sprite, xdelay, ydelay, xinc, yinc
Xdelay en Xdelay kan worden ingesteld met snelheden tussen 0 en 50. (0 tegengehouden, en 50 is langzaamste)
Xinc en Yinc wordt gewoonlijk ingesteld op om het even wat tussen -2..-1..1..2.
XINC, -1 is links van de huidige positie, 1 klopt van huidige positie door pixel
YINC, -1 is 1 pixel uit positie, 1 beneden 1 pixel vanaf huidige positie.
Hoe hoger de nummers gebruikt in Xinc en Yinc, hoe sneller de sprite wordt verplaatst.
Nogmaals, beide opdrachten zijn ideaal als sprites moeten deel uitmaken van de achtergrond.
Merk op hoe de ballon gewoon doorloopt rond het scherm wanneer het de rand bereikt?