Bild auf tastendruck bewegen...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bart

Betreff: Bild auf tastendruck bewegen...

BeitragSa, Okt 30, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
Wer weiß was kommt.. ?
 

Bart

BeitragSa, Okt 30, 2004 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Bart

BeitragSa, Okt 30, 2004 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Okt 30, 2004 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
das klappt nicht Crying or Very sad
Könnt sich vielleicht jemand die Mühe machen und versuchen das komplett zu verbessern?
 

Kado

BeitragSa, Okt 30, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst glaub ich den asci code statt (oben) (rechts) und so eingeben und alle befehle findest du auf www.blitzbase.de
 

Bart

BeitragSa, Okt 30, 2004 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, das is ja klar Wink
Hab ich natürlich gemacht

Hubsi

BeitragSo, Okt 31, 2004 10:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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)
 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
Sodala. Getestet und funktionstüchtig Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group