Seite 1 von 1

Keyboard key

Verfasst: 08.06.2005 07:16
von MASH
Wenn ich ein sprite mit dem nächsten tastendruck anzeigen möchte dann funktioniert es ja auch aber wenn ich dann nocheinmal die gleiche routine danach ausführen möchte dann übernimmt der erste tastendruck auch gleichzeitig den zweiten so wird das zweite sprite also nicht angezeigt wie kann ich es machen das die taste erst wieder losgelassen werden muss.

Mit

Code: Alles auswählen

KeyboardReleased
ist es das gleiche

Code: Alles auswählen

ClearScreen(0, 0, 0)           ;Bildschirm RGB auf löschen
DisplaySprite(1, 0, 0)           ;Sprite anzeigen
  
StartDrawing(ScreenOutput())    ;Zeichenmodus öffnen
  DrawingMode(1)                ;Zeichenmodus festlegen (tranzparenter Hintergrund)
  Locate(200, 300)
  DrawText("BEN")         ;Der zu zeichnende Text
StopDrawing()                   ;Zecihenmodus beenden

FlipBuffers()                   ;BACK mit FRONT screen tauschen

;bis taste gedrückt wird warten
Repeat
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)


ClearScreen(0, 0, 0)    ;Bildschirm RGB auf löschen
DisplaySprite(2, 256, 0)  ;Sprite anzeigen
  
StartDrawing(ScreenOutput())    ;Zeichenmodus öffnen
  DrawingMode(1)                ;Zeichenmodus festlegen (tranzparenter Hintergrund)
  Locate(200, 300)              ;Zeichenposition festlegen
  DrawText("BEUM")             ;Der zu zeichnende Text
StopDrawing()                   ;Zecihenmodus beenden

FlipBuffers()                   ;BACK mit FRONT screen tauschen

;bis taste gedrückt wird warten
Repeat
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_right)

Verfasst: 08.06.2005 12:41
von bobobo
nimm KeyboardReleased() statt KeyboardPushed()

Verfasst: 08.06.2005 18:37
von MASH
und wie bekommt man eine 3 sekunden Pause hin die man jeder zeit abbrechen kann?

Verfasst: 08.06.2005 19:01
von zigapeda
ungefähr so oder:

Code: Alles auswählen

time = Elapsedmilliseconds() + 3000
Repeat
ExamineKeyboard()
Until time = ElapsedMilliseconds() or keyboardreleased(#pb_key_all)

Verfasst: 08.06.2005 22:01
von bluejoke
Da würd ich aber noch ein Delay reinmachen, sonst sag ich aber nix zu dem Code, gefällt mir zumindest stilistisch nicht :)

Code: Alles auswählen

time = Elapsedmilliseconds() + 3000
Repeat
ExamineKeyboard()
Delay(1)
Until time = ElapsedMilliseconds() or keyboardreleased(#pb_key_all)

Verfasst: 09.06.2005 08:33
von DarkDragon
bluejoke hat geschrieben:Da würd ich aber noch ein Delay reinmachen, sonst sag ich aber nix zu dem Code, gefällt mir zumindest stilistisch nicht :)

Code: Alles auswählen

time = Elapsedmilliseconds() + 3000
Repeat
ExamineKeyboard()
Delay(1)
Until time = ElapsedMilliseconds() or keyboardreleased(#pb_key_all)
Ich würds so machen(ist sicherer):

Code: Alles auswählen

time = Elapsedmilliseconds() + 3000
Repeat
ExamineKeyboard()
Delay(1)
Until time >= ElapsedMilliseconds() or keyboardreleased(#pb_key_all)