Code: Alles auswählen
;**************************************************************
;* INCLUDE FOR PUREBASIC 3.92
;**************************************************************
;* Titel: KeyboardTyping
;* Autor: Lebostein
;* Datum: 13.01.2005
;**************************************************************
;==============================================================
; Variablen und Konstanten der Include-Datei
;==============================================================
NewList PushedKeys.l()
;==============================================================
; Entfernt Einträge von Tasten, die losgelassen wurden
;==============================================================
Procedure ExamineKeyboardTyping()
ForEach PushedKeys(): If KeyboardPushed(PushedKeys()) = 0: DeleteElement(PushedKeys()): EndIf: Next
EndProcedure
;==============================================================
; Gibt einmalig 1 zurück, wenn Taste niedergedrückt wird
;==============================================================
Procedure KeyboardTyping(code)
If KeyboardPushed(code) = 0: ProcedureReturn: EndIf
ForEach PushedKeys(): If PushedKeys() = code: exist = 1: EndIf: Next
If exist = 0: AddElement(PushedKeys()): PushedKeys() = code: ProcedureReturn 1: EndIf
EndProcedure
;==============================================================
; Ende der Include-Datei
;==============================================================
;---------------------------- Schnitt ----------------------------------
; Hier ein kleines Beispiel:
InitSprite()
InitKeyboard()
OpenScreen(800,600,16,"KeyboardTyping")
status = 1
Repeat
ExamineKeyboard()
ExamineKeyboardTyping()
If KeyboardTyping(#PB_Key_Up) And status > 1: status - 1: EndIf
If KeyboardTyping(#PB_Key_Down) And status < 6: status + 1: EndIf
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(1)
For eintrag = 1 To 6
If eintrag = status: FrontColor(255,0,0): Else: FrontColor(255,255,255): EndIf
Locate(100, eintrag * 20)
Select eintrag
Case 1: DrawText("Spiel starten")
Case 2: DrawText("Einstellungen")
Case 3: DrawText("Credits")
Case 4: DrawText("Handbuch lesen")
Case 5: DrawText("Leveleditor starten")
Case 6: DrawText("Spiel verlassen")
EndSelect
Next eintrag
StopDrawing()
FlipBuffers()
Until KeyboardTyping(#PB_Key_Escape)
Viel Spaß damit