Checks if keyboard key just pressed this frame (single press detection).
Takes vKeyCode (virtual key code constant, integer, e.g., VK_SPACE, VK_ENTER).
Returns 1 if key just pressed, 0 otherwise.
Input
Parameters & Returns
Parameters
vKeyCodeInt
Returns
Int
Quick Summary
Checks if keyboard key just pressed this frame (single press detection).
Takes vKeyCode (virtual key code constant, integer, e.g., VK_SPACE, VK_ENTER).
Returns 1 if key just pressed, 0 otherwise.
Technical Exegesis...
Checks if keyboard key just pressed this frame (single press detection). Takes vKeyCode (virtual key code constant, integer, e.g., VK_SPACE, VK_ENTER). Returns 1 if key just pressed, 0 otherwise. Detects key press edge (transition from released to pressed), returns true only once per press.
Checks if keyboard key just pressed this frame (single press detection). Takes vKeyCode (virtual key code constant, integer, e.g., VK_SPACE, VK_ENTER). Returns 1 if key just pressed, 0 otherwise. Detects key press edge (transition from released to pressed), returns true only once per press.
Key hit detection: 1=key just pressed this frame (was released last frame, pressed this frame), 0=key held (already pressed last frame), 0=key released (not pressed), single-shot detection (returns 1 only on first press frame, then 0 until released and pressed again).
Virtual key codes: use predefined VK_ constants (VK_A through VK_Z for letters, VK_SPACE, VK_ENTER, VK_ESCAPE, arrow keys VK_LEFT/RIGHT/UP/DOWN, VK_F1-F12, etc.), codes map to Windows virtual key constants (standard across Windows applications), consult input constants documentation for available key codes.
Use cases: (1) Discrete actions (jump, shoot once, interact, use item - single actions per press), (2) Menu navigation (move cursor, select option, back), (3) Toggle states (press P to toggle pause, press M to toggle map), (4) Text input (character-by-character input without auto-repeat), (5) Combo detection (detect key sequence for special moves).
Common patterns: single action = If inpIsKeyHit(VK_SPACE) Then player jump; menu select = If inpIsKeyHit(VK_ENTER) Then select menu item; toggle = If inpIsKeyHit(VK_P) Then paused=Not paused; combo = If inpIsKeyHit(VK_W) Then comboSeq$=comboSeq$+"W" (detect sequence).
KeyHit vs KeyDown: inpIsKeyHit returns 1 only on first press frame (single-shot detection, use for discrete actions like jump/menu select), inpIsKeyDown returns 1 every frame while held (continuous detection, use for sustained actions like movement/auto-fire), KeyHit prevents auto-repeat (no repeated actions from single press), KeyDown enables continuous actions while held (hold to keep moving).
Common usage: use KeyHit for jump (press once to jump, not continuous jumping), use KeyHit for menu navigation (press once to move cursor, not rapid scrolling), use KeyDown for movement (hold to keep moving), use KeyDown for sprint (hold to sprint continuously).
Menu navigation: typical pattern for menu cursor movement, up = If inpIsKeyHit(VK_UP) Then cursorIndex=cursorIndex-1, down = If inpIsKeyHit(VK_DOWN) Then cursorIndex=cursorIndex+1, select = If inpIsKeyHit(VK_ENTER) Then select item, prevents rapid cursor scrolling (one move per key press).
Toggle pattern: toggle pause = If inpIsKeyHit(VK_P) Then paused=Not paused (press once to pause, press again to unpause), toggle fullscreen = If inpIsKeyHit(VK_F11) Then toggle fullscreen mode, avoids rapid toggling from single press.
Performance: very fast query (~0.0001ms, simple state comparison), safe for per-frame calls (intended usage pattern), no polling required (system tracks key states automatically).
Key codes: case-insensitive for letters (VK_A checks 'A' key regardless of Shift/CapsLock state), separate codes for left/right modifiers (VK_LSHIFT vs VK_RSHIFT if needed), function keys (VK_F1 through VK_F12), numpad keys separate from number row.
Return values: 1 if key just pressed this frame (edge detected), 0 if key already held (was pressed last frame), 0 if key released (not pressed), 0 on error (invalid key code).