Problem mit der Animation der Spielfigur
Übersicht

MechVisorBetreff: Problem mit der Animation der Spielfigur |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hiho und so.
Ich hab da so ein scheiss Prob -_- Also meine Spielfigur kann in 8 Richtungen laufen(N,O,S,W,NO,NW,SO,SW). Naja das macht sie auch ganz gut, sie wird auch nur animiert wenn eine der Pfeil-Tasten(Oben,Unten,Links,Rechts) über KeyDown() betätigt wird. So nun zum eigentlichen Problem, sobald ich 2 oder mehr der Pfeiltasten gleichzeitig drücke(z.B. um die Figur nordwestlich zu bewegen), werden die 2 Animationen die den Pfeiltasten Links und Oben angehören abgespielt. Demzufolge erscheinen natürlich 2 Animationen was ziehmlich Noob aussieht. Wie kann ich es dann schaffen das wenn 2 Tasten gedrückt werden nur eine Animation abgespielt wird und nicht 2? Code: [AUSKLAPPEN] If KeyDown[203] And KeyDown[200] Then x = x - 1 y = y - 1 DrawImage anim,x,y,frmanim EndIf Das funktioniert nicht da dadurch die Tasten exakt zu gleich gedrückt werden müssen. Wer auf die Idee kommt bitte nicht antworten. ^_^ Hier mein Quell-Code: Code: [AUSKLAPPEN] ;Der Teil sollte bekannt sein. Graphics 800,600,16,1 SetBuffer BackBuffer() bild = LoadImage("Chip-Set\testwiese.bmp") anim = LoadAnimImage("Chip-Set\testanim.bmp",32,32,0,4) MaskImage anim,255,0,255 If anim = 22035888 Then x = 384 y = 284 EndIf Repeat Cls TileBlock bild,384,268 ;Geschwindigkeit der Animation festlegen If MilliSecs() > tmranim + 100 Then tmranim = MilliSecs() frmanim = (frmanim + 1) Mod 4 EndIf ;Für die Animationen bei Tastendruck, für diesen Test reicht ein und die selbe Animation ;für alle Richtungen aus. If KeyDown(205) Then x = x + 2 DrawImage anim,x,y,frmanim EndIf If KeyDown(203) Then x = x - 2 DrawImage anim,x,y,frmanim EndIf If KeyDown(200) Then y = y - 2 DrawImage anim,x,y,frmanim EndIf If KeyDown(208) Then y = y + 2 DrawImage anim,x,y,frmanim EndIf ;Wenn keine der Pfeiltasten gedrückt wurde: Standbild benutzen. If Not KeyDown(205) Or KeyDown(203) Or KeyDown(200) Or KeyDown(208) Then DrawImage anim,x,y EndIf Flip Until KeyHit(1) End Ich hoffe jemand kann mir helfen. |
||
Control ur mind -_-;; |
![]() |
Gossi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Statt gleich nach den Tastenabfragen das Bild zu zeichnen, könntest du dort erst mal vormerken, in welche Richtung sich der Spieler senkrecht und waagerecht bewegt.
Code: [AUSKLAPPEN] if keydown(200) y=y-2 hori=-1 waag=0 endif Später fragst du diese Variablen ab. z.B. Diagonal nach oben rechts: Code: [AUSKLAPPEN] if hori=-1 and waag=1 ;Deine Animation elseif hori=..... elseif ..... elseif .... endif |
||
Alle Wasser laufen ins Meer, doch wird das Meer nicht voller; an den Ort, dahin sie fließen, fließen sie immer wieder. (...) Was geschehen ist, eben das wird hernach sein. Was man getan hat, eben das tut man hernach wieder, und es geschieht nichts neues unter der Sonne. Geschieht etwas, von dem man sagen könnte: "Sieh, das ist neu"? Es ist längst vorher auch geschehen in den Zeiten, die vor uns gewesen sind. |
MechVisor |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thx, werde ich mal ausprobieren und so wie es aussieht müsste das auch eigentlich so klappen, muss aber erstmal jetzt duschen.
btw. Sorry lerne erst seit 3 Tagen, da ich mich mit PHP auskenne komm ich aber schon ziehmlich schnell rein und lerne schnell. Leider fehlt mir oft die logische Antwort :/ |
||
Control ur mind -_-;; |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
muste mit else if machen PseudoCode:Code: [AUSKLAPPEN] Const Hoch = 200
Const Runter= 208 Const Links = 203 Const Rechts= 205 If KeyDown(Hoch) And KeyDown (Rechts) Then x = x + 2 y = y - 2 ::Else If KeyDown(Hoch) And KeyDown (Links) Then x = x - 2 y = y - 2 ::Else If KeyDown(Runter) And KeyDown (Rechts) Then x = x + 2 y = y + 2 ::Else If KeyDown(Runter) And KeyDown (Links) Then x = x - 2 y = y - 2 ::Else If KeyDown(Hoch) Then y = y - 2 ::Else If KeyDown(Runter) Then y = y + 2 ::Else If KeyDown(Rechts) x = x + 2 ::Else If KeyDown(Links) x = x - 2 End If hier muste evt. noch das zeichnen einbauen |
||
[BB2D | BB3D | BB+]
|
MechVisor |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beide Versionen funktionieren. JUHUU! Vielen Dank. Super schnelle Hilfe und wirklich verständliche Antworten gegeben. Super Forum hier! Weiter so ![]() |
||
Control ur mind -_-;; |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group