Checks if mouse button just pressed this frame (single click detection).
Takes vmButtonCode (mouse button code: 0=left, 1=right, 2=middle).
Returns 1 if button just pressed, 0 otherwise.
Input
Parameters & Returns
Parameters
vmButtonCodeInt
Returns
Int
Quick Summary
Checks if mouse button just pressed this frame (single click detection).
Takes vmButtonCode (mouse button code: 0=left, 1=right, 2=middle).
Returns 1 if button just pressed, 0 otherwise.
Technical Exegesis...
Checks if mouse button just pressed this frame (single click detection). Takes vmButtonCode (mouse button code: 0=left, 1=right, 2=middle). Returns 1 if button just pressed, 0 otherwise. Detects button press edge (transition from released to pressed), returns true only once per click.
Checks if mouse button just pressed this frame (single click detection). Takes vmButtonCode (mouse button code: 0=left, 1=right, 2=middle). Returns 1 if button just pressed, 0 otherwise. Detects button press edge (transition from released to pressed), returns true only once per click.
Button hit detection: 1=button just pressed this frame (was released last frame, pressed this frame), 0=button held (already pressed last frame), 0=button released (not pressed), single-shot detection (returns 1 only on first press frame, then 0 until released and pressed again).
Button codes: 0=left button (primary, most common for UI interaction/single shots), 1=right button (secondary, context menus/alt actions), 2=middle button (scroll wheel click, less common), button codes 0-2 only (additional buttons not supported by default).
Use cases: (1) UI interaction (button clicks, checkbox toggles, menu selection), (2) Object selection (click to select object in 3D scene), (3) Single-shot weapons (click to fire one bullet, not auto-fire), (4) Object placement (click to place building/unit), (5) Toggle actions (click to toggle tool/mode).
Common patterns: UI button = If inpIsMouseHit(0) AND mouseOverButton Then activate button; object select = If inpIsMouseHit(0) Then selected=pickObject(inpGetMouseX(), inpGetMouseY()); single shot = If inpIsMouseHit(0) Then fire single bullet; place object = If inpIsMouseHit(0) Then spawn object at cursor; context menu = If inpIsMouseHit(1) Then show context menu.
MouseHit vs MouseDown: inpIsMouseHit returns 1 only on first press frame (single-shot detection, use for UI clicks/single shots/placement), inpIsMouseDown returns 1 every frame while held (continuous detection, use for auto-fire/dragging/camera control), MouseHit prevents auto-repeat (one action per click), MouseDown enables continuous actions while held (auto-fire, dragging).
UI interaction: typical pattern for button clicks, check mouse over bounds = If mouseX>=btnX AND mouseX<btnX+btnWidth AND mouseY>=btnY AND mouseY<btnY+btnHeight Then mouseOver, activate on click = If mouseOver AND inpIsMouseHit(0) Then button clicked, prevents repeated activation from single click.
Object picking: click to select 3D object, pattern = If inpIsMouseHit(0) Then raycast from mouse position, check intersection with scene objects, select clicked object, prevents repeated selection from holding button.
Single-shot pattern: click to fire single shot, pattern = If inpIsMouseHit(0) Then spawn bullet projectile, different from auto-fire (use inpIsMouseDown for auto-fire), ensures one shot per click (no rapid-fire from holding button).
Drag start detection: detect start of drag operation, pattern = If inpIsMouseHit(0) Then startDrag=True: dragStartX=mouseX: dragStartY=mouseY, then use inpIsMouseDown(0) for continuous drag movement, MouseHit detects beginning of drag (first frame of button press).
Performance: very fast query (~0.0001ms, simple state comparison), safe for per-frame calls (intended usage pattern), no polling required (system tracks button states automatically).
Button codes validation: codes 0-2 valid (left, right, middle), invalid codes return 0 (no error, just false), left button (0) most common (primary interaction button).
Return values: 1 if button just pressed this frame (edge detected), 0 if button already held (was pressed last frame), 0 if button released (not pressed), 0 on error (invalid button code).