2D Spieler Bewegungen
Verfasst: 12.05.2009 20:49
Hab jetzt wirklich lange nach der besten Lösung gesucht , aber keine wirkliche Lösung zu meiner gefunden, deswegen frag ich einfach nochmal nach.
Um in einem Spiel die Figur zu animieren ( deren Bewegung ) verwende ich folgeden Code
Einmal diesen
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)
Beide Codes flackern, und genau das is mein Problem.
Was kann ich dagegen machen ?
Würd mich über eine Hilfe freuen.
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
EndIf
Was kann ich dagegen machen ?
Würd mich über eine Hilfe freuen.