Bild auf tastendruck bewegen...
Übersicht

BartBetreff: Bild auf tastendruck bewegen... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin, ich hab hier ne Animation und möchte die per Pfeiltastten bewegen, wie mach ich das?Hier ist der Code:
Code: [AUSKLAPPEN] Graphics 1024,768,0,0 SetBuffer BackBuffer() walking = LoadAnimImage("walkingheroe.bmp", 96, 96, 0, 35) MaskImage walking, 255, 0, 255 Repeat DrawImage walking, 300, 300, Frame If KeyDown(200) = 1 Then Frame = Frame + 1 If Frame = 7 Then Frame = 0 Flip Cls Until KeyDown(1) End |
||
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
speichere die x und y Koordinaten in Variablen:
Code: [AUSKLAPPEN] Graphics 1024,768,0,0 SetBuffer BackBuffer() global plx = 300 global ply = 300 walking = LoadAnimImage("walkingheroe.bmp", 96, 96, 0, 35) MaskImage walking, 255, 0, 255 Repeat If KeyDown(200) = 1 Then Frame = Frame + 1 plx = plx + 1 endif ;...und so weiter If Frame = 7 Then Frame = 0 DrawImage walking, plx,ply, Frame Flip Cls Until KeyDown(1) End |
||
Wer weiß was kommt.. ? |
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weis den Koordinaten des Bildes Variablen zu, und verändere diese bei Knopfdruck... Liest den heutzutage keiner mehr Tutorials?
EDIT. Zu spät... Und um deine nächste Frage zu vermeiden: Such im Forum nach "Millisecs()" und "Timer". |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube, die lesen schon noch tutorials, sind aber schon zu verwöht von Sachen wie RPGMaker, 3D Game Studio, nagut, ich hatte die auch einmal, aber habe schnell gemerkt, das sie sehr sehr begrenz sind, damit sie halt einfach bleiben...Ich glaube, daher kommen auch soviele Neue, die meinen, Ich programmiere mal kurz ein RPG ![]() |
||
Wer weiß was kommt.. ? |
Bart |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein!! Ich hab mir schon die kompletten Tutorials aus der onlinehilfe durchgelesen. Ich hatte auch den code der nach mir gepostet wurde schon herrausgekriegt (trotzdem danke), hab nur was bei der Anfangsfrage vergessen. Ich würde gerne wissen wie ich für jede richtung (unten-oben-rechts-links) eine andere Animation angezeigen kann. Also das die Animation falls ich Links drücke von Links gezeigt wird (also die Bilder von der Figur mit der Linksansicht) und falls ich nach unten drücke der Held nach untenguckt und geht (also die gehanimation mit dem gesicht nach unten). Wie es halt bei jedem normalen 2D-Rollenspiel (Secret of Mana/Evermore, Zelda usw.) ist. Also dass für jede richtung eine andere Animation angezeigt wird. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da gibt es mehrere Möglichkeiten. Wenn Du alles in einer Bilddatei speicherst könntest Du eine Hilfsvariable anlegen deren Wert zum angezeigten Frame addiert wird. Der Wert der Variable richtet sich dann logischerweise nach der Blickrichtung.
Oder die einzelnen Richtungen in verschiedenen Dateien speichern, in ein Array laden und entsprechend der Richtung anzeigen. Ersteres ist aber weniger aufwändig ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Bart |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, ich hab mir da auch schon ein wenig gedanken gemacht und will das so machen wie das erste was Hubsi gesagt hat ("Wenn Du alles in einer Bilddatei speicherst könntest Du eine Hilfsvariable anlegen deren Wert zum angezeigten Frame addiert wird. Der Wert der Variable richtet sich dann logischerweise nach der Blickrichtung"), ich bin bisher soweit (siehe unten stehenden code), leider funzt es trotzdem nicht (Habs deswegen auch nur für eine richtung gemacht, wäre super wenn ihr mir den code verbessert so das dass mit den richtungen funzt):
Aso, noch eine kleine Info am rande, das Bild hat 32 einzelne bilder, jede reihe hat je acht einzelbilder ( hier nochmal zum verstehen ne Grafik) So ist das Bild aufgeteilt: 11111111 22222222 33333333 44444444 1=rechts 2=oben 3=links 4=unten Code: [AUSKLAPPEN] Graphics 1024,768,0,0 SetBuffer BackBuffer() Global plx = 300 Global ply = 300 walking = LoadAnimImage("heldgesamt.bmp", 96, 96, 0, 32) MaskImage walking, 255, 0, 255 Repeat If KeyDown(200) = 1 Then x = 9 Frame = Frame + x x = 1 Frame = Frame + x ply = ply - 1 If Frame = 16 Then Frame = 9 EndIf ;...und so weiter DrawImage walking, plx,ply, Frame Flip Cls Until KeyDown(1) End |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If Keydown(rechts) then if frames > 7 then frames = 0 else frames = frames + 1 endif elseif Keydown(oben) then if frames < 8 or frames > 15 then frames = 8 else frames = frames + 1 endif elseif Keydown(....) ... endif Oder so ähnlich... |
||
Bart |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das klappt nicht ![]() Könnt sich vielleicht jemand die Mühe machen und versuchen das komplett zu verbessern? |
||
Kado |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst glaub ich den asci code statt (oben) (rechts) und so eingeben und alle befehle findest du auf www.blitzbase.de | ||
Bart |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja, das is ja klar ![]() Hab ich natürlich gemacht |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 1024,768,0,0
Sodala. Getestet und funktionstüchtig SetBuffer BackBuffer() Global plx = 300 Global ply = 300 walking = LoadAnimImage("heldgesamt.bmp", 96, 96, 0, 32) MaskImage walking, 255, 0, 255 Repeat If KeyDown(200) startframe=8 ply=ply-2 EndIf If KeyDown(208) startframe=24 ply=ply+2 EndIf If KeyDown(203) startframe=16 plx=plx-2 EndIf If KeyDown(205) startframe=0 plx=plx+2 EndIf If MilliSecs()>timer+400 timer=MilliSecs() frame=frame+1 If frame=8 Then frame=0 EndIf If Not (KeyDown(200) Or KeyDown(203) Or KeyDown(205) Or KeyDown(208)) frame=0 EndIf DrawImage walking,plx,ply,frame+startframe Flip Cls Until KeyHit(1) End ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group