Returns left analog stick vertical axis value with direction parameter.
Takes controller (controller handle from inpCreateController, positive integer), direction (0=up, 1=down, controls return value sign/interpretation).
Returns integer axis value (-32768 to +32767 range, sign depends on direction parameter).
Input
Parameters & Returns
Parameters
controllerInt
directionInt
Returns
Int
Quick Summary
Returns left analog stick vertical axis value with direction parameter.
Takes controller (controller handle from inpCreateController, positive integer), direction (0=up, 1=down, controls return value sign/interpretation).
Returns integer axis value (-32768 to +32767 range, sign depends on direction parameter).
Technical Exegesis...
Returns left analog stick vertical axis value with direction parameter. Takes controller (controller handle from inpCreateController, positive integer), direction (0=up, 1=down, controls return value sign/interpretation). Returns integer axis value (-32768 to +32767 range, sign depends on direction parameter). Queries left stick Y-axis for analog movement input.
Returns left analog stick vertical axis value with direction parameter. Takes controller (controller handle from inpCreateController, positive integer), direction (0=up, 1=down, controls return value sign/interpretation). Returns integer axis value (-32768 to +32767 range, sign depends on direction parameter). Queries left stick Y-axis for analog movement input.
Axis value: returns analog stick position on Y-axis, -32768=full up, 0=centered/neutral, +32767=full down, magnitude indicates how far stick pushed (32767=maximum displacement, 16384=half displacement), includes deadzone filtering (small movements near center ignored to prevent drift).
Direction parameter: 0=up (returns positive value when stick pushed up, negative when down), 1=down (returns positive value when stick pushed down, negative when up), allows checking specific direction (If inpLeftStickHitY(ctrl%, 0)>threshold Then moving up), different from reading raw axis (raw would require sign checking).
Use cases: (1) Character movement (analog walking speed forward/backward), (2) Camera control (vertical camera tilt/pitch), (3) Vehicle control (throttle/brake analog control), (4) Menu navigation (vertical cursor movement or selection), (5) Flight control (pitch control for aircraft/spacecraft).
Common patterns: movement = zSpeed#=inpLeftStickHitY(controller%, 1)/32767.0*maxSpeed# (normalize to 0.0-1.0 range); direction check = If inpLeftStickHitY(controller%, 0)>8000 Then moving up; combined movement = xSpeed#=inpLeftStickHitX(ctrl%, 1)/32767.0: zSpeed#=inpLeftStickHitY(ctrl%, 1)/32767.0 (full 2D movement); camera pitch = cameraPitch#=cameraPitch#-inpLeftStickHitY(controller%, 0)/32767.0*rotSpeed#.
Y-axis direction: Y-axis increases downward (standard screen/gamepad convention, +Y=down), opposite of mathematical Y-axis (mathematical +Y=up), consistent with screen coordinates and most game engines, direction parameter allows inverting (0=up positive, 1=down positive).
Normalization: convert to -1.0 to +1.0 float range (value# = axis% / 32767.0), useful for speed/rotation calculations (speed# = normalizedAxis# * maxSpeed#), preserves analog precision (full range of stick movement).
Deadzone: built-in deadzone filtering applied (small values near center returned as 0), prevents stick drift (worn controllers report non-zero when centered), typical deadzone ~8000-10000 (about 25% of full range), apply additional deadzone if needed (If mathAbs(value%)<threshold% Then value%=0).
2D movement: combine X and Y for full 2D movement, pattern: stickX#=inpLeftStickHitX(ctrl%, 1)/32767.0: stickY#=inpLeftStickHitY(ctrl%, 1)/32767.0: playerX#=playerX#+stickX#*speed#: playerZ#=playerZ#+stickY#*speed#, typical FPS/TPS movement controls.
Controller requirements: requires inpUpdateController called each frame (updates stick state from hardware), returns 0 if controller disconnected (check inpIsControllerConnected first), left stick typically used for movement (right stick for camera in FPS games).
Performance: fast query (~0.001ms, simple state lookup), safe for per-frame calls (intended usage pattern), no controller update required (reads cached state from last inpUpdateController).
Axis range: -32768 to +32767 (16-bit signed integer, standard XInput range), 0=neutral/centered (stick not pushed), positive/negative depends on direction parameter (0=up positive, 1=down positive), magnitude indicates displacement (larger absolute value=farther from center).
Return values: -32768 to +32767 analog axis value (sign depends on direction), 0 if stick centered or disconnected, 0 on error (invalid controller handle).