Keyboard Abfrage mit Flags
Verfasst: 03.03.2008 23:08
wird immer wieder gebraucht:
in games dürfen Tasten oft nur auf den ersten antipper reagieren,
z.b. wenn man durch ein Menu blättern will.
für sowas verwendet man Flags, wenn es um mehrere Keys geht praktischer Weise ein Array.
einmal als Macros:
einmal als Procedure:
in games dürfen Tasten oft nur auf den ersten antipper reagieren,
z.b. wenn man durch ein Menu blättern will.
für sowas verwendet man Flags, wenn es um mehrere Keys geht praktischer Weise ein Array.
einmal als Macros:
Code: Alles auswählen
; If KeyboardPushed(#Key)
; If Flag = 0
; Flag = 1
; Action()
; EndIf
; Else
; Flag = 0
; EndIf
Global Dim KeyFlag.b(255)
Macro KeyCheck( KeyName )
If KeyboardPushed( KeyName )
If KeyFlag( KeyName ) = 0
KeyFlag( KeyName ) = 1
EndMacro
Macro EndKeyCheck( KeyName )
EndIf
Else
KeyFlag( KeyName ) = 0
EndIf
EndMacro
; Verwendung:
KeyCheck( #PB_Key_Space )
; hier der code
EndKeyCheck( #PB_Key_Space )
Code: Alles auswählen
Procedure.l KeyboardHit( KeyName.l )
Static Dim KeyFlag.b(255)
If KeyboardPushed(KeyName)
If KeyFlag(KeyName) = 0
KeyFlag(KeyName) = 1
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
Else
KeyFlag(KeyName) = 0
ProcedureReturn 0
EndIf
EndProcedure
; Verwendung:
If KeyboardHit( #PB_Key_Space )
; hier der code
EndIf