Eingabe überprüfen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

bruce185

Betreff: Eingabe überprüfen

BeitragDi, Aug 02, 2005 3:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
wisst ihr zufälligerweise wie ich überprüfen kann ob die Pfeiltaste rechts los gelasen wurde, Scancode 205, ohne else wollte ich das machen, geht das, es würde mich freuen wenn das gehen würde, für jede hilfe bin ich euch sehr dankbar Wink

bruce185

garret

BeitragDi, Aug 02, 2005 4:42
Antworten mit Zitat
Benutzer-Profile anzeigen
If keydown(205) variable=1
If Not keydown(205) and variable=1 variable=2

If variable=2
(blabla)
variable=0
Endif
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht)

bruce185

BeitragDi, Aug 02, 2005 5:02
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für deine hilfe, aber es funktioniert nicht was ich will.

ich arbeite gerade an einem Abenteuer Spiel mit Affen wo Bananen ein sammeln müssen, und der Affe figur läuft nicht so wie ich es will, ich möchte wenn ich auf den Pfeil rechts drücke dass dann die figur nach rechts läuft, und wenn ich den Pfeil nach links drücke dass dann die figur
nach links läuft, aber da gibs ein problem, wenn ich nach rechts drücke dann läuft die figur nach rechts, aber wenn ich jetzt nach link drücke, dann läuft die figur kurz nach rechts, und dann erst nach links, hier ein beispiel wie ich die Animation laufen lasse:

BlitzBasic: [AUSKLAPPEN]

DrawImage Affe,a,b,frame

;Die animation von affe,
;jede 100 millisekunden durchlaufen lassen

If MilliSecs()-AffeZeit > 100
;Den Affe nach rechts bewegen
If KeyDown(205) Then

frame = frame + 1
If frame = 8 Then frame = 0 ;wenn frame = 8 dann wieder auf 0
scrollx = scrollx + 20
;Den Affe nach links bewegen
ElseIf KeyDown(203)
frame = frame + 1
If frame = 17 Then frame = 9 ;wenn frame = 17, dann wieder auf 9
Else
frame = 0 ;wenn keine Pfeil Taste mehr gedrückt werde, dann setze frame wieder auf 0
EndIf


AffeZeit = MilliSecs()
EndIf



aber es funktioniert nicht richtig, ich habe 18 einzel bilder in einer Bitmap datei gespeichert, wenn ich nach rechts laufe dann soll die animation von 0 bis 8 durchlaufen, und wenn ich nach links laufe, dann soll die animation von 9 bis 17 durchlaufen, wie geht das richtig, wenn ich fragen darf?, ich bin für jede hilfe euch sehr dankbar Crying or Very sad

bruce185

garret

BeitragDi, Aug 02, 2005 5:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du das 0. Bild als Ausgangsbild hast, brauchst du insgesamt nur 17 Bilder (Mittelbild, 8 nach links, 8 nach rechts)
Ich empfehle dir allerdings das Mittelbild als 8. (bzw. 7. bei Berücksichtigung der 0. Variable) zu speichern, links davon die Animationsschritte nach links, rechts davon die nach rechts.

Wenn du frame nach den Tastaturabfragen auf 8 setzt und die Taste gedrückt wird, geht sie immer einen Schritt in die gleiche Richtung.
Wenn keine Bewegung vorliegt sollte frame an geeigneter Stelle allerdings auch auf 8 zurückgestellt werden.

Code: [AUSKLAPPEN]

If keine_bewegung frame=8

  If KeyDown(205) Then
   frame = frame + 1
   If frame = -1 Then frame = 8 ;wenn frame = -1 dann wieder auf 8
     scrollx = scrollx + 20
    ;Den Affe nach links bewegen
    ElseIf KeyDown(203)
     frame = frame - 1
    If frame = 18 Then frame = 8 ;wenn frame = 18, dann wieder auf 8
    Else
     frame = 8 ;wenn keine Pfeil Taste mehr gedrückt werde, dann setze frame wieder auf 0
   EndIf


Hoffe das konnte dir helfen...
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht)

bruce185

BeitragDi, Aug 02, 2005 5:34
Antworten mit Zitat
Benutzer-Profile anzeigen
cool, danke, ich musste an dieser code nur ein kleinischkeit ändern, und jetzt funktioniert es, so sieht das jetzt aus:

BlitzBasic: [AUSKLAPPEN]

If KeyDown(205) Then
frame = frame + 1
If frame > 8 Then frame = 0 ;wenn frame = -1 dann wieder auf 8
scrollx = scrollx + 20
;Den Affe nach links bewegen
ElseIf KeyDown(203)
frame = frame + 1
scrollx = scrollx - 20
If frame = 17 Then frame = 9 ;wenn frame = 18, dann wieder auf 8
Else
frame = 8 ;wenn keine Pfeil Taste mehr gedrückt werde, dann setze frame wieder auf 0
EndIf

Delay 30


vielen vielen dank für die hilfe Laughing

bruce185

bruce185

BeitragDi, Aug 02, 2005 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
weisst du vieleicht wie ich es schaffe das meine figur maximal 100 pixel hoch springen kann, und danach wieder auf den Boden aufkommt, es würde mich sehr freuen wenn du es weisst wie das funktioniert, ich danke dir schonmal Wink

bruce185

garret

BeitragDi, Aug 02, 2005 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mich noch nicht so intensiv mit Jump'n'Run-Spielen beschäftigt. Vielleicht ergibt die Forensuche etwas?

Ich würde mir vielleicht die Startkoordinaten merken (bzw. die y-Koordinate) und sobald die Figur auf Höhe y+100 ist, drehst du die Richtung um und sie fällt wieder. Oder du bemühst die Sin-/Cos-Funktionen (hier im Forum gab es auf jeden Fall ein Beispiel von einem Moderator dazu). Eine Sinus-Kurve grafisch dargestellt ist ja so ein regelmäßiges Schwingen. Du musst dann nur noch berücksichtigen, dass die Figur ggf. tiefer bzw. höher landet als sie zu Anfang stand.
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht)

bruce185

BeitragMi, Aug 03, 2005 0:39
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit Sin und Cosinus kann ich bereits, aber wenns um springen geht, dann würde ich kein Sinus einsetzen, weil meine figur soll ja nur normal springen können, aber trotzdem vielen dank, ich werde es schon hinbekommen Very Happy

bruce185

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group