Um in einem Spiel die Figur zu animieren ( deren Bewegung ) verwende ich folgeden Code
Einmal diesen
Code: Alles auswählen
If KeyboardPushed(#PB_Key_Left)
If LaufenLinks() = 0
If SpielerX<1-scroll
DisplayTransparentSprite(#SpielerLinks1, SpielerX + Scroll, SpielerY)
Else
If startlinks = 0
Startlauf = SpielerX
startlinks = 1
EndIf
If Startlauf-SpielerX = 2
LoadSprite(#Spieler, "sfx/SpielerLinks1.png")
DisplayTransparentSprite(#Spieler, SpielerX + Scroll, SpielerY) : spielerX-2
ElseIf Startlauf-SpielerX = 4
LoadSprite(#Spieler, "sfx/SpielerLinks2.png")
DisplayTransparentSprite(#Spieler, SpielerX + Scroll, SpielerY) : spielerX-2
ElseIf Startlauf-SpielerX = 6
LoadSprite(#Spieler, "sfx/SpielerLinks3.png")
DisplayTransparentSprite(#Spieler, SpielerX + Scroll, SpielerY) : spielerX-2
startlinks = 0
Else
SpielerX-2
EndIf
EndIf
Else
LoadSprite(#Spieler, "sfx/SpielerLinks1.png")
DisplayTransparentSprite(#Spieler, SpielerX + Scroll, SpielerY)
EndIf
Falls der Spieler nicht kolidieren wird ( if LaufenLinks()= 0 ) wird das animation "gestartet":
Falls nach Rechts gedrückt wird der Spieler um 2 px bewegt
Bei 2 Px wird bild 1 angzeigt bei 4 px wird bild und bei 6 px wird Bild 3 angezeigt.
Also wird bei jeder Pixel Bewegung ein neues Bild angezeigt.
Falls LaufenLinks() = 1 gibt wird ein "Standbild" angzeigt"
und danach gehts wieder von vorne los.
Hier noch ein Versuch (Mein eigentlicher versuch)
Code: Alles auswählen
ElseIf KeyboardPushed(#PB_Key_Right) Laufenrechts() = 0
If startrechts = 0
Startlauf = SpielerX
startrechts = 1
EndIf
Debug SpielerX-Startlauf
If SpielerX-Startlauf = 2
DisplayTransparentSprite(#SpielerRechts1, SpielerX + Scroll, SpielerY) : spielerX + 2
ElseIf SpielerX-Startlauf = 4
DisplayTransparentSprite(#SpielerRechts2, SpielerX + Scroll, SpielerY) : spielerX + 2
ElseIf SpielerX-Startlauf = 6
DisplayTransparentSprite(#SpielerRechts3, SpielerX + Scroll, SpielerY) : spielerX + 2
startrechts = 0
Else
SpielerX + 2
If spielerX>300-scroll
scroll-8
EndIf
EndIfWas kann ich dagegen machen ?
Würd mich über eine Hilfe freuen.