Frage über bild bewegung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Hannes15

Betreff: Frage über bild bewegung

BeitragFr, Mai 30, 2008 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe da ein kleines prob wenn ich eine figur bewege und anhalte geht es leider immer wieder auf seine ausgangs ausrichtung wie kann ich das ändern

hier mal der Quellcode
Code: [AUSKLAPPEN]




Graphics 640, 480, 16, 1
SetBuffer BackBuffer()
;c.bmp bildet den Hintergrund
bild = LoadImage("c.bmp")
bild1 = LoadImage("Baum.bmp")
bild2 = LoadImage("Markt.bmp")
figur4 = LoadImage("figur4R.bmp")
figur3 = LoadImage("figur3V.bmp")
figur2 = LoadImage("figur2h.bmp")
figur1 = LoadImage("figur1L.bmp")
MaskImage figur1 ,244, 10, 197
MaskImage figur2 ,244, 10, 197
MaskImage figur3 ,244, 10, 197
MaskImage figur4 ,244, 10, 197

x = 305
y = 420
;
;
Repeat



;Hintergrund
H = H+0
If H=200 Then H=0
TileBlock bild,0,H
DrawImage Figur3,x,y


;Tastenabfrage
If KeyDown(200) = 1 Then y = y - 1
If KeyDown(208) = 1 Then y = y + 1
If KeyDown(205) = 1 Then x = x + 2
If KeyDown(203) = 1 Then x = x - 2

If KeyDown(200) = 1 Then DrawImage figur2, x,y
If KeyDown(208) = 1 Then DrawImage figur3, x,y
If KeyDown(205) = 1 Then DrawImage figur4, x,y
If KeyDown(203) = 1 Then DrawImage figur1, x,y

If KeyDown(200) Then richtung=1

If richtung=1 Then
  y = y - 1
  DrawImage figur2, x,y




;Randtest
If x < 0 Then  x = 0
If x > 609 Then x = 609
If y < 0 Then y = 0
If y > 449 Then y = 449
Flip

Until KeyDown(1)



End
  • Zuletzt bearbeitet von Hannes15 am Fr, Mai 30, 2008 16:12, insgesamt 2-mal bearbeitet

Eingeproggt

BeitragFr, Mai 30, 2008 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Du zeichnest figur3 immer. Es scheint mir aber so, als ob du sie nur bei Abwärts-Bewegung haben willst (KeyDown(208))

EDIT: achja, wie kann man das ändern:
Mit einer zusätzlichen Variable "richtung" (oder wie auch immer), die du bei Tastendruck setzt und anhand derer entschieden wird, welches Bild gezeichnet wird.

mfG, Christoph.
 

Hannes15

BeitragFr, Mai 30, 2008 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh gut danke für den tipp ich wärds sofort versuchen^^
 

Hannes15

BeitragFr, Mai 30, 2008 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir vil noch jemand ein tipp geben ich lerne gerade erst BB und habe leider keinen plan wie ich vorgehen muss habe schon verschiedene sachen ausprobiert die ginge aber alle nicht . leider Sad

Eingeproggt

BeitragFr, Mai 30, 2008 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, Dann mal mit
Code: [AUSKLAPPEN]
If KeyDown(200) Then richtung=1

If richtung=1 Then
  y = y - 1
  DrawImage figur2, x,y
Endif


Und das mit jeder Cursortaste.

mfG, Christoph.
 

Hannes15

BeitragFr, Mai 30, 2008 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun gut jetzt guckt meine Figur in die richtung in die ich geh aber ich kann jetzt über haupt nicht mehr die richtung wechseln wenn ich einmal den Key 200 gedrückt habe.

Shogo

BeitragFr, Mai 30, 2008 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
hast du auch eine if Abfrage gemacht welche Pfeiltaste gerade gedrueckt wird, und dann die richtungs Variable angepasst?[/code]
 

Hannes15

BeitragFr, Mai 30, 2008 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein darauf bin ich noch gar nicht gekommen ich versuch's gleich mal. Danke für den tipp^^
 

Hannes15

BeitragFr, Mai 30, 2008 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs geschafft ich habe einfach das hier gemacht
Code: [AUSKLAPPEN]

taste = WaitKey ;Hier neu;

If KeyDown(taste) Then richtung=1

If richtung=1 Then
  y = y - 1
  DrawImage figur2, x,y
EndIf


Das einzige problem dabei ist jetzt das ich für jeden einzelnen schritt den ich nun gehe immer einmal drücken muss ist also echt lahm meine figur aber ich glaub ich weiß wie ich das ändere indem ich einfach die FPS rate erhöhen, wenn ich falsch liege berichtigt mich^^

The_Nici

BeitragFr, Mai 30, 2008 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
WaitKey hält das gesamte Programm an.

Shogo

BeitragFr, Mai 30, 2008 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte das so gemeint.

Code: [AUSKLAPPEN]

If KeyDown(200) Then
richtung=1
ElseIf KeyDown(203) Then
richtung=2
ElseIf KeyDown(205) Then
richtung=3
ElseIf KeyDown(208) Then
richtung=4
Else
richtung = 0
end if


Mit waitKey wirst du nicht weit kommen.
 

Hannes15

BeitragFr, Mai 30, 2008 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
das macht bei mir überhaupt keinen unterschied egal obich Waitkey oder Get Key benutze der effekt ist der gleiche. Ich sehe da hier überhaupt keinen unterschied.

Shogo

das was du da stehen hast bewirkt das gleiche wie mit waitkey irgendwie überkein unterschied.
zumindest bei mir

Shogo

BeitragFr, Mai 30, 2008 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Der Befehl GetKey ermittelt nur die tatsächliche Tastaturbetätigungen. Wird eine Taste ständig gedrückt, so liefert diese Funktion nur einmal den Wert zurück.


deswegen geht GetKey nicht und warum es mit Waitkey nicht funktioniert hat The_Nici schon geschrieben.

Ich wuerde dir KeyDown empfehlen weil der soloange True zurueck gibt bis er losgelassen wird. Ein Bsp. Code habe ich schon oben geschrieben.

Edit: Poste mal deine Bewegen funktion.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group