You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
7.8 KiB
HTML
142 lines
7.8 KiB
HTML
<!menue>
|
|
|
|
<!h1=Tastatur abfrage allgemein>
|
|
Die einzelnen Tasten der Tastatur bzw. des angeschlossenen Eingabegeräts werden auf ein 256 Byte grosses Keyboard Array abgebildet.
|
|
Die Engine Funktion <wF>llinput_Update aktuallisiert dieses Array.
|
|
<wF>llinput_Update sollte bei jedem Ende von einem Frameloop aufgerufen werden.
|
|
<!h3=Zugriff über LLINPUT_KEY* Defines>
|
|
|
|
<!h2a=llinput_Keys,llinput_Keys Array - Tastatur direkt abfragen,llinput_Keys>
|
|
<wT>extern <wT>TxU8 <wV>llinput_Keys [256];
|
|
<wT>TxU8 ist ein unsigned char.
|
|
Es ist wird beim jeden <wF>llinput_Update der Inhalt der Keys nach links geshiftet und das unterste Bit, je nach gedrückter Taste, gesetzt bzw. nicht gesetzt.
|
|
Dadurch kann man durch ausmaskieren von Bit0 und Bit1 feststellen ob gerade gedrückt wurde: 01 oder losgelassen wurde: 10.
|
|
Gedrückter Zustand bit 0 ist gesetzt, losgelassener Zustand bit 0 ist nicht gesetzt.
|
|
Die Makros Justdown() und Justup maskieren und testen die beiden bits.
|
|
Aufrufbeispiel:
|
|
<§wx= if( <wF>Justdown ( llinput_Keys[ <br><wD>LLINPUT_KEY_SPACE ] ) ... §>
|
|
|
|
<!h3a=Justdown Justup, Justdown Justup Makros,justdownupmakro>
|
|
<!rtf=llinput_Keys_Justdown.rtf>
|
|
|
|
|
|
<!h2a=Tasendefines,Tasten definitionen,keydefines>
|
|
<§wx=
|
|
<br><wD>LLINPUT_ESCAPE <wV>"Escape"
|
|
<br><wD>LLINPUT_FKEY1 <wV>"F1"
|
|
<br><wD>LLINPUT_FKEY2 <wV>"F2"
|
|
<br><wD>LLINPUT_FKEY3 <wV>"F3"
|
|
<br><wD>LLINPUT_FKEY4 <wV>"F4"
|
|
<br><wD>LLINPUT_FKEY5 <wV>"F5"
|
|
<br><wD>LLINPUT_FKEY6 <wV>"F6"
|
|
<br><wD>LLINPUT_FKEY7 <wV>"F7"
|
|
<br><wD>LLINPUT_FKEY8 <wV>"F8"
|
|
<br><wD>LLINPUT_FKEY9 <wV>"F9"
|
|
<br><wD>LLINPUT_FKEY10 <wV>"F10"
|
|
<br><wD>LLINPUT_FKEY11 <wV>"F11"
|
|
<br><wD>LLINPUT_FKEY12 <wV>"F12"
|
|
|
|
<br><wD>LLINPUT_CURSOR_UP <wV>"CursorUp"
|
|
<br><wD>LLINPUT_CURSOR_LEFT <wV>"CursorLeft"
|
|
<br><wD>LLINPUT_CURSOR_RIGHT <wV>"CursorRight"
|
|
<br><wD>LLINPUT_CURSOR_DOWN <wV>"CursorDown"
|
|
<br><wD>LLINPUT_PAGEUP <wV>"PageUp"
|
|
<br><wD>LLINPUT_PAGEDOWN <wV>"PageDown"
|
|
<br><wD>LLINPUT_CURSOR_INSERT <wV>"Insert"
|
|
<br><wD>LLINPUT_CURSOR_DELETE <wV>"Delete"
|
|
<br><wD>LLINPUT_CURSOR_HOME <wV>"Home"
|
|
<br><wD>LLINPUT_CURSOR_END <wV>"End"
|
|
|
|
<br><wD>LLINPUT_NUMPAD_ENTER <wV>"NumpadEnter" <wT>'\n'
|
|
<br><wD>LLINPUT_NUMPAD_ADD <wV>"Numpad+" '+'
|
|
<br><wD>LLINPUT_NUMPAD_SUBTRACT <wV>"Numpad-" <wT>'-'
|
|
<br><wD>LLINPUT_NUMPAD_DIVIDE <wV>"Numpad:" <wT>':'
|
|
<br><wD>LLINPUT_NUMPAD_MULTIPLY <wV>"Numpad*" <wT>'*'
|
|
<br><wD>LLINPUT_NUMPAD_DECIMAL <wV>"Numpad." <wT>'.'
|
|
<br><wD>LLINPUT_NUMPAD_0 <wV>"Numpad0" <wT>'0'
|
|
<br><wD>LLINPUT_NUMPAD_1 <wV>"Numpad1" <wT>'1'
|
|
<br><wD>LLINPUT_NUMPAD_2 <wV>"Numpad2" <wT>'2'
|
|
<br><wD>LLINPUT_NUMPAD_3 <wV>"Numpad3" <wT>'3'
|
|
<br><wD>LLINPUT_NUMPAD_4 <wV>"Numpad4" <wT>'4'
|
|
<br><wD>LLINPUT_NUMPAD_5 <wV>"Numpad5" <wT>'5'
|
|
<br><wD>LLINPUT_NUMPAD_6 <wV>"Numpad6" <wT>'6'
|
|
<br><wD>LLINPUT_NUMPAD_7 <wV>"Numpad7" <wT>'7'
|
|
<br><wD>LLINPUT_NUMPAD_8 <wV>"Numpad8" <wT>'8'
|
|
<br><wD>LLINPUT_NUMPAD_9 <wV>"Numpad9" <wT>'9'
|
|
|
|
<br><wD>LLINPUT_LSHIFT <wV>"ShiftLeft"
|
|
<br><wD>LLINPUT_RSHIFT <wV>"ShiftRight"
|
|
<br><wD>LLINPUT_LCONTROL <wV>"ControlLeft"
|
|
<br><wD>LLINPUT_RCONTROL <wV>"ControlRight"
|
|
<br><wD>LLINPUT_SYSRQ <wV>"Sysrequest"
|
|
<br><wD>LLINPUT_CAPITAL <wV>"Capital"
|
|
<br><wD>LLINPUT_NUMLOCK <wV>"Numlock"
|
|
<br><wD>LLINPUT_SCROLL <wV>"ScrollLock"
|
|
<br><wD>LLINPUT_LMENU <wV>"AltLeft"
|
|
<br><wD>LLINPUT_RMENU <wV>"AltRight"
|
|
<br><wD>LLINPUT_LWIN <wV>"WinkeyLeft"
|
|
<br><wD>LLINPUT_RWIN <wV>"WinkeyRight"
|
|
<br><wD>LLINPUT_APPS <wV>"AppMenuKey"
|
|
|
|
<br><wD>LLINPUT_CHAR <wV>"Key c" <wT>'c' <wV>c=[ A-Z a-z 0-9 isgraph() 0x9 0x8 ]
|
|
|
|
<br><wD>LLINPUT_KEY_1 <wV>"Key 1" <wT>'1'
|
|
<br><wD>LLINPUT_KEY_2 <wV>"Key 2" <wT>'2'
|
|
<br><wD>LLINPUT_KEY_3 <wV>"Key 3" <wT>'3'
|
|
<br><wD>LLINPUT_KEY_4 <wV>"Key 4" <wT>'4'
|
|
<br><wD>LLINPUT_KEY_5 <wV>"Key 5" <wT>'5'
|
|
<br><wD>LLINPUT_KEY_6 <wV>"Key 6" <wT>'6'
|
|
<br><wD>LLINPUT_KEY_7 <wV>"Key 7" <wT>'7'
|
|
<br><wD>LLINPUT_KEY_8 <wV>"Key 8" <wT>'8'
|
|
<br><wD>LLINPUT_KEY_9 <wV>"Key 9" <wT>'9'
|
|
<br><wD>LLINPUT_KEY_0 <wV>"Key 0" <wT>'0'
|
|
<br><wD>LLINPUT_KEY_A <wV>"Key A" <wT>'A'
|
|
<br><wD>LLINPUT_KEY_B <wV>"Key B" <wT>'B'
|
|
<br><wD>LLINPUT_KEY_C <wV>"Key C" <wT>'C'
|
|
<br><wD>LLINPUT_KEY_D <wV>"Key D" <wT>'D'
|
|
<br><wD>LLINPUT_KEY_E <wV>"Key E" <wT>'E'
|
|
<br><wD>LLINPUT_KEY_F <wV>"Key F" <wT>'F'
|
|
<br><wD>LLINPUT_KEY_G <wV>"Key G" <wT>'G'
|
|
<br><wD>LLINPUT_KEY_H <wV>"Key H" <wT>'H'
|
|
<br><wD>LLINPUT_KEY_I <wV>"Key I" <wT>'I'
|
|
<br><wD>LLINPUT_KEY_J <wV>"Key J" <wT>'J'
|
|
<br><wD>LLINPUT_KEY_K <wV>"Key K" <wT>'K'
|
|
<br><wD>LLINPUT_KEY_L <wV>"Key L" <wT>'L'
|
|
<br><wD>LLINPUT_KEY_M <wV>"Key M" <wT>'M'
|
|
<br><wD>LLINPUT_KEY_N <wV>"Key N" <wT>'N'
|
|
<br><wD>LLINPUT_KEY_O <wV>"Key O" <wT>'O'
|
|
<br><wD>LLINPUT_KEY_P <wV>"Key P" <wT>'P'
|
|
<br><wD>LLINPUT_KEY_Q <wV>"Key Q" <wT>'Q'
|
|
<br><wD>LLINPUT_KEY_R <wV>"Key R" <wT>'R'
|
|
<br><wD>LLINPUT_KEY_S <wV>"Key S" <wT>'S'
|
|
<br><wD>LLINPUT_KEY_T <wV>"Key T" <wT>'T'
|
|
<br><wD>LLINPUT_KEY_U <wV>"Key U" <wT>'U'
|
|
<br><wD>LLINPUT_KEY_V <wV>"Key V" <wT>'V'
|
|
<br><wD>LLINPUT_KEY_W <wV>"Key W" <wT>'W'
|
|
<br><wD>LLINPUT_KEY_X <wV>"Key X" <wT>'X'
|
|
<br><wD>LLINPUT_KEY_Y <wV>"Key Y" <wT>'Y'
|
|
<br><wD>LLINPUT_KEY_Z <wV>"Key Z" <wT>'Z'
|
|
|
|
<br><wD>LLINPUT_KEY_MINUS <wV>"Key -" <wT>'-' - on main keyboard
|
|
<br><wD>LLINPUT_KEY_EQUALS <wV>"Key =" <wT>'='
|
|
<br><wD>LLINPUT_KEY_BACK <wV>"" <wT>'\b' backspace
|
|
<br><wD>LLINPUT_KEY_TAB <wV>"" <wT>'\t' tabulator
|
|
<br><wD>LLINPUT_KEY_LBRACKET <wV>"Key [" <wT>'['
|
|
<br><wD>LLINPUT_KEY_RBRACKET <wV>"Key ]" <wT>']'
|
|
<br><wD>LLINPUT_KEY_RETURN <wV>"" <wT>'\n Enter on main keyboard
|
|
<br><wD>LLINPUT_KEY_SEMICOLON <wV>"Key ;" <wT>';'
|
|
<br><wD>LLINPUT_KEY_APOSTROPHE <wV>"Key '" <wT>'\''
|
|
<br><wD>LLINPUT_KEY_GRAVE <wV>"Key `" <wT>'`' accent grave
|
|
<br><wD>LLINPUT_KEY_BACKSLASH <wV>"Key \" <wT>'\\'
|
|
<br><wD>LLINPUT_KEY_COMMA <wV>"Key ," <wT>','
|
|
<br><wD>LLINPUT_KEY_PERIOD <wV>"Key ." <wT>'.' . on main keyboard
|
|
<br><wD>LLINPUT_KEY_SLASH <wV>"Key /" <wT>'/' / on main keyboard
|
|
<br><wD>LLINPUT_KEY_SPACE <wV>"Key " <wT>' ' space
|
|
|
|
|
|
§>
|
|
|
|
|
|
<!h2a=llinput_GetEvent,Tasten Event abfrage,llinput_geteventloop>
|
|
<!rtf=llinput_geteventloopkeyboard.rtf>
|