Vier Richtungen, vier animationen [2D]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dokebi

Betreff: Vier Richtungen, vier animationen [2D]

BeitragMo, Dez 28, 2009 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag liebes Forum

Help miii please! Embarassed Nach dem ich gestern gelernt habe wie ich mit MilliSecs() eine Animation abspielen (yatta!) und die Figur in alle 4 Richtungen bewegen kann, möchte ich nun, dass sich auch die abzuspielenden Frames bei Tastendruck ändern.

Also wenn meine Figur (Angeling) nach oben navigiert wird, sollen während dem die Frames 9 - 11 abgespielt werden, nach unten die Frames 6-8 usw.

Hier dieses peinliche Stück Code:
Code: [AUSKLAPPEN]
Graphics 357,378,16,2
SetBuffer BackBuffer()

Timer = MilliSecs()
   
angeling = LoadAnimImage("pics\angeling2.png", 21,21,0,11)

angeling_x = 21
angeling_y = 21

MaskImage angeling, 77, 188, 253


Repeat

Cls

If Timer + 130 < MilliSecs() Then
Frame = Frame + 1
If Frame = 3 Then Frame = 0
Timer = MilliSecs()
EndIf

DrawImage angeling, angeling_x, angeling_y, Frame

If KeyDown(203) Then angeling_x = angeling_x -1
If KeyDown(205) Then angeling_x = angeling_x +1
If KeyDown(208) Then angeling_y = angeling_y +1
If KeyDown(200) Then angeling_y = angeling_y -1

;Hier müsste ich wohl den Animations-Befehl in die Bewegungs-Befehle einbauen, doch bei mir kam leider nur Müll raus

Flip
   
Until KeyHit(1)


Bild: user posted image

Ich denke es ist ein einfaches Problem aber ich kann mir imo keine Lösung vorstellen. Hab auch schon so einiges ausprobiert, doch irgendwie funktioniert nichts... Wie macht ihr das so? (^^); Oder kennt ihr ein gutes Tut genau dafür? (hab leider keins gefunden)

Vielen Dank im voraus.

M0rgenstern

BeitragMo, Dez 28, 2009 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich würde dem ne Variable für die Richtung geben
Und dann die entsprechenden Frames abarbeiten.
Sagen wir 1 ist nord, zwei Ost, drei Süd, und vier West.
Dann würde das so aussehen:

Code: [AUSKLAPPEN]
local Richtung

if keydown(PHoch) then Richtung = 1
if keydown(PRechts) then Richtung = 2
if keydown(PUnten) then Richtung = 3
if keydown(PLinks) then Richtung = 4

if timer + 130 < millisecs() then
 select Richtung
  case 1
   if frame = 11 then frame = 9
   else frame = frame + 1
 case 2
   if frame = 5 then frame = 3
   else frame = frame + 1
.
.
.


und so weiter halt.

Lg, M0rgenstern

Midimaster

BeitragMo, Dez 28, 2009 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst dazu jeweils Frame anders berechnen:

BlitzBasic: [AUSKLAPPEN]
Frame=Frame+1
If Richtung =1 Then
If Frame>11 Then
Frame=9
EndIf
ElseIf Richung=2 Then
If Frame>8 Then
Frame=6
EndIf
Else...


oder so:



BlitzBasic: [AUSKLAPPEN]

If KeyDown(203) Then
angeling_x = angeling_x -1
FrameAdd=6
If KeyDown(205) Then
angeling_x = angeling_x +1
FrameAdd=9
.....

Frame=Frame+1
DrawImage angeling, angeling_x, angeling_y, Frame+FrameAdd

Dokebi

BeitragMi, Dez 30, 2009 1:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank ihr beiden! werde eure Vorschläge gleich ausprobieren. Smile
You got signature 1

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group