Animationen in 2 Richtungen
Übersicht![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
DomBetreff: Animationen in 2 Richtungen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich möchte bei meinen Spiel, das man nach links laufen soll und die Spiel Figur auch Animiert wird.
Dafür habe ich folgendes Bild: [img]www.code-freaks.de/anim_laeuft.bmp[/img] Die Animationspahsen 0-4 für Rechts laufen, und die phasen 5-9 für nach links laufen. Danach lade ich das Bild: Code: [AUSKLAPPEN] anim_laeuft = LoadAnimImage("grafik\anim_laeuft.bmp", 96,96, 0, 9) ; die Laufanimation laden Nun schonmal erstes problem: bwohl es 10 grafiken in dem bild sind, sagt der wenn ich 10 frames beim laden eintrage: Not enough frames in bitmap. Das ist aber ncith das hauptproblem. Nun möchte ich mit die figur animieren: Code: [AUSKLAPPEN] If KeyDown(KEY_RIGHT) Then ; wenn die PfeilRechts Taste gedrückt wurde playerX = playerX + playerSpeed ; setzt die X position um Playerspeed Pixel weiter nach rechts. richtung = 1 ; die Richtung auf 1 setzten ( 1 = Nach rechtschauend, 0 = nach links schauend. Wichtig für die Schüsse und die Animation) If ZaehlStart + 150 < MilliSecs() Then ; alle 1,5 sek eine neue AnimationsGrafik zeichnen frame = frame + 1 If frame = 4 Then ; wenn alle Animationspahasen durch sind frame = 0 ; gehe wieder zur ersten Animationspahse Zaehlstart = MilliSecs() EndIf EndIf EndIf If KeyDown(KEY_LEFT) Then ; wenn die PfeilLinks Taste gedrückt wurde playerX = playerX - playerSpeed ; setzt die X position um Playerspeed Pixel weiter nach Links. richtung = 0 ; die Richtung auf 1 setzten ( 1 = Nach rechtschauend, 0 = nach links schauend. Wichtig für die Schüsse und die Animation) If ZaehlStart + 150 < MilliSecs() Then ; alle 1,5 sek eine neue AnimationsGrafik zeichnen frame = frame + 1 If frame = 9 Then ; wenn alle Animationspahasen durch sind frame = 5 ; gehe wieder zur ersten Animationspahse Zaehlstart = MilliSecs() EndIf EndIf EndIf So weit so gut, wenn ich mich aber erst nach rechts und dann nach Links bewege, dann kommt der Fehler Image out of Range. Das hänge wahrscheinlich damit zusammen das ich bei der 2ten Animation als Startframe 5 (weil es ja erst ab dem 5ten Animationsbild anfängt) angeben muss. Ich weiß aber nicht wie. Kann mir vielleicht jemand helfen? Achja: Ich habe bereits die Suche benutzt, leider war in den Threads meistens nur beschrieben wie man sich in eine Richtung animiert bewegt ): |
||
- Zuletzt bearbeitet von Dom am Do, Jul 29, 2004 14:10, insgesamt einmal bearbeitet
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aalso:
Soweit ich weiß,sind da nur 9 Frames drin,denn: BB zählt den ersten Frame immer als den o-ten Frame. Ändere das dann entsprechend um,dann is auch der Startframe des nach links laufenden Männchens 4! |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Dom |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mh mit der 0 stimmt, aber: Rechtes Männchen: 0 - 1 - 2 - 3 - 4 = 5 Phasen
Das nach Links laufende Männchen müsste also doch trozdem startnummer 5 haben O_o ( 5 - 6 - 7 - 8 - 9 - ) |
||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
*autsch*
klar! probiers einfach so wie du zuletzt sagtest aus. |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Dom |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habe jetzt das Aktuelle im ersten beitrag reineditiert. Problem weiterhin:
ich drücke nach rechts: es wird nur die rste Animationspahse für nach rechts gehen und die letzte angezeigt. Wenn ich dann nach links drücke, gleiches problem mit der nach links animation. Wenn ich dann wieder nach rechts drücke kommt wieder Image out of range ): |
||
![]() |
Tobchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Ahnung, ob dir das wirklich hilft, aber hier habe ich ein tolles Beispiel, bei dem man viel lernen kann.
http://home.arcor.de/zaidot/Pacci.rar Da wird ein Bild geladen, dass 2 Frames pro Richtung hat. Mit Pfeil-Rechts und Pfeil-Links bewegt man sich. |
||
Tobchen - die Welt von Tobi!
|
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube du solltest <= und >= benutzen.
Dein Zähler ist beim nach links gehen auf 9 oder so, dann drückst du "rechts" es wird addiert, das Ergebnis ist natürlich größer als 4, kann aber nicht auf 0 gesetzt werden, und das Spiel crasht. |
||
solitaire |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du gar nicht mehr weiter weist, würde ich dir empfehlen, die Bilder in zwei verschieden Bilddatein zu packen:
Ein mal die nach links und einmal die nach rechts. Das müsste das Problem auch lösen. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gibt auch noch DebugLog oder laß dir das Frame wo du hin gehen
willst im Fenster anzeigen ... |
||
Dom |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So mit Tobi's beispiel geht, danke trozdem noch mal an alle. | ||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also es geht auch mit etwas weniger Code wegen der Anim.
Beispiel: vor die Hauptschleife: player=LoadAnimImage(player.png),96,96,0,9 in die Hauptschleife: frame=millisecs()/100 mod 9 .... .... .... Drawimage player,x,y,frame mehr muss man in Bezug auf die Anim nicht schreiben, finde ich. Gruß Blitzblaster |
||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
upps habe gerade festgestellt, dass das bei verschiedenen Animationen innerhalb einer .png so Problemen entstehen. Das ist jetzt bei mir der Fall.
Hmm ich muss wohl auch auf diese Weise meine Anim machen. @ Kabelbinder: Das habe ich mal eben versucht mit 2 verschiedenen Grafiken. Also die eine GFX für links und die andere für rechts. Das Problem war, dass man ja irgendeine Grafik als Hauptgrafik nehmen muss. Wenn ich jetzt z.B. die eine Grafik als erstes lade, wo de Player rechts steht und ich steuere nach links, dann läd er zwar die richige Position, aber die andere bleibt im Raum stehen. Auch nicht so toll. Na ja, liegt wohl eher am meinem Code denke ich. |
||
![]() |
Slayer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, schau mal hier Leo's Adventure
Das ist mein aller erster versuch in BB gewesen ![]() |
||
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version |
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Slayer: Werde ich mir heute Abend mal anschaun. Ich habe jetzt die Anim geteilt, so das jede Richtung eine Anim ist. Jetzt geht es, aber die Anim läuft auf, wenn ich keine Taste drücke. Scheiss Spiel . Wie Du gerade feststellst, versuche ich mal was in 2D. Geht ja doch dort etwas anders, als in 3D. | ||
Übersicht
![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Powered by phpBB © 2001 - 2006, phpBB Group