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

<!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>