Animationen abspielen wo man will und wann man will
Übersicht

![]() |
WEBLinkBetreff: Animationen abspielen wo man will und wann man will |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich hab folgende Frage. Ich habe für ein chara alle lauifrichtungen in einer Bitmap gemacht. dies ist so eingeteilt das von links nach rechts es 10 Bilder einer richtung sind. es gibt 4 Spalten also 4 Richtungen. Nun möchte die 2. Spalte starten lassen und enden lassen wann ich will. Wie kann man das am besten machen? Code: [AUSKLAPPEN] If einmal = 0 Then laufframe = 6: einmal = 6
If laufframe = 9 Then laufframe = 6 laufframe=(laufframe + 1) Mod 10 EndIf Hier soll die animation bei 6 (6 ist da 2. Spalte) anfangen und bei 9 aufhören das funktioniert leider nicht. |
||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ALso,ich hab das bei mir so gemacht:
Code: [AUSKLAPPEN] IF Frame = 6 then frame = frame+1
If Frame = 7 then frame = frame+1 If Frame = 8 then frame = frame+1 If Frame = 9 then frame = 6 Drawimagerect name,player_x,player_y,frame*80,2*80 80 steht für die höhe und breite des Bildes,kann variabel sein den befehl findest du auch noch einmal inner hilfe. Außerdem würde Ich dir empfehlen pausen zu machen zwischen den bildern,sonst is das zu schnell!!! ALso: Code: [AUSKLAPPEN] If <<Bedingung>>= <<erfüllt>> then
IF Frame = 6 and i = frame_timer then frame = frame+1 i=0 IF Frame = 7 and i = frame_timer then frame = frame+1 i=0 IF Frame = 8 and i = frame_timer then frame = frame+1 i=0 IF Frame = 9 and i = frame_timer then frame = 6 i=0 i=i+1 Drawimagerect name,player_x,player_y,frame*80,2*80,80,80 endif |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich würde die ganzen If´s im Beispiel besser gegen Select´s und Case´s
eintauschen , spart Zeit und Rechenkraft ( wenn auch nur einen Bruchteil ). |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach doch am Anfang vom Programm:
Code: [AUSKLAPPEN] Global CharAnimation = 0 Dim Animation(15,2) Animation(0,0) = 6 Animation(0,1) = 9 Animation(1,0) = 0 Animation(1,1) = 5 Animation(2,0) = 10 Animation(2,1) = 15 Animation(3,0) = 16 Animation(3,1) = 19 usw. wobei der erste Index die Animationsnummer angibt und beim hinteren 0 = Anfangsframe der Animation, 1 = Endframe der Animation Dann machst du um die Figur zu animieren: Code: [AUSKLAPPEN] If laufframe < Animation(CharAnimation,0) Or laufframe > Animation(CharAnimation,1) laufframe = Animation(CharAnimation,0) Else laufframe = laufframe + 1 If laufframe > Animation(CharAnimation,1) laufframe = Animation(CharAnimation,0) End If End If Dann brauchst du nur Anfangs und Endframe bei der Initialisierung eintragen und kannst der Figur ne andere Animation geben, indem du einfach die Variable 'CharAnimation' änderst! mfG Ctuchik |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
rambo256 hat Folgendes geschrieben: Code: [AUSKLAPPEN] IF Frame = 6 then frame = frame+1 If Frame = 7 then frame = frame+1 If Frame = 8 then frame = frame+1 If Frame = 9 then frame = 6 Wie wärs denn mit: Code: [AUSKLAPPEN] If Frame>5 And Frame<9 Frame=Frame+1 Else If Frame=9 Frame=6 EndIf ![]() |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
hier gibt es viele Möglichkeiten das zu realisieren.... die Bilder könnte man schon anders laden in ein 3D Array Beispiel 10 Bilder je Richtung Code: [AUSKLAPPEN] Dim BilderSpieler (3,9)
Global richtung,Bildframe ;wobei der erste index die Richtung angibt , im 2. die einzelnen Bilder geladen werden For richtung = 0 To 3; 4 mal For Bildframe = 0 To 9 ; 10 Bilder BilderSpieler (richtung,Bildframe) = LoadAnimImage("Animation.bmp",40,40,frame,1) frame = frame +1 Next Next ;Hauptschleife ... If KeyDown (hoch) Then richtung = 1 : Bildframe =(Bildframe +1) Mod 10 If KeyDown (links) Then richtung = 0 : Bildframe =(Bildframe +1) Mod 10 DrawImage x,y, BilderSpieler (richtung,Bildframe) habe den Code mal so geschrieben aber nicht getestet! Und wenn ich das richtig gesehen habe möchtest du das so haben das wenn der Char anfängt zu laufen erst frame 0 bis frame 5 abspeielt und dann 6 -9 immer wiederholt wird bis er dann stehenbleibt. Oder ? dann muß das noch dahin angepasst werden , aber ist schon spät...GääHHHnnn |
||
[BB2D | BB3D | BB+]
|
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Regga: Jo da hasse Recht ![]() THX!! |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Antworten sind logisch, ich muss mal sehen wie das mit dem Speed hinhaut ![]() Also, wenn man runter läuft soll zum Beispiel Bild 1 - 5 abgespielt werden wenn man dann hoch läuft 6 - 10 und so weiter. Thanks für die Antworten |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group