Difference between revisions of "IsKeyPressed"
Jump to navigation
Jump to search
imported>DragoonWraith (removing Deprecated flag - has a unique use not fulfilled by other functions) |
imported>Omzy m |
||
Line 101: | Line 101: | ||
*[[OnKeyDown]] | *[[OnKeyDown]] | ||
*[[OnControlDown]] | *[[OnControlDown]] | ||
[[Category: Functions]] | |||
[[Category: Functions (OBSE)]] | |||
[[Category: Input Functions]] | |||
[[Category: Input Functions (OBSE)]] |
Revision as of 18:44, 12 April 2010
A command for Oblivion Script Extender
Syntax:
IsKeyPressed key
Returns true if key is currently pressed down. Key values are stored in Windows header files, as opposed to IsKeyPressed2's DirectX scancodes.
Deprecated from OBSE v0013: replaced by IsKeyPressed3 which uses the DX scan codes like the other input functions.
Sample Key IDs
1 Left Mouse Button 2 Right Mouse Button 4 Middle Mouse Button --- 13 Enter --- 20 Caps Lock --- 32 spacebar --- 33 PgUp 34 PgDn 35 End 36 Home 37 Left 38 Up 39 Right 40 Down 44 PrtScr 45 Ins 46 Del --- 48 0 49 1 50 2 ... 55 7 56 8 57 9 --- 65 A 66 B 67 C ... 88 X 89 Y 90 Z --- 96 NUM0 97 NUM1 98 NUM2 ... 103 NUM7 104 NUM8 105 NUM9 106 NUM* 107 NUM+ 109 NUM- 111 NUM/ --- 112 F1 113 F2 114 F3 ... 123 F12 ... 127 F16 --- 160 left shift 161 right shift 162 left control 163 right control
A longer list can be found here
These can be converted to DirectX keycodes using DX2VK.
Notes
- This function doesn't return a value while a MessageBox is being displayed, presumably because input is switched over to the MessageBox.
- To convert DX scan codes to values usable by this function, use DX2VK.
- Bear in mind that this function returns 1 for as long as the key is held down, so it's generally a good idea to trap the key and then wait until it is released, i.e.:
if ( curKey && isKeyPressed curkey ) ; key still being held down return ; wait until it's released else set curkey to 0 endif if ( isKeyPressed <keyCode> ) ; do stuff set curKey to <keyCode> endif
- This function won't work correctly under Windows 2000 unless the .ini setting bBackground Keyboard:Controls is set to 1. You can use con_SetINISetting to do this (make sure to set it whenever the game is loaded).
- Will not detect keys force-pressed with TapKey or TapControl but will detect disabled keys.
- This is the only input function that detects mouse button presses before the game engine does.