Input

How keyboard and mouse input is read and processed.

Input System

Input is read through Urho3D::Input subsystem, accessed via:

auto* input = context_->GetSubsystem<Input>();

Input is polled each frame inside the update functions — there is no event-driven input handling.

Two Input Methods

MethodBehaviorUsed for
input->GetKeyDown(KEY_X)Returns true every frame the key is heldMovement, rotation, strafe
input->GetKeyPress(KEY_X)Returns true only on the frame the key is first pressedJump, phase transitions, menu selection
input->GetMouseButtonPress(MOUSEB_LEFT)One-shot mouse buttonWin/Lost screen continuation

Where Input is Read

LocationKeys handled
Blupi::Update()UP/DOWN/LEFT/RIGHT/W/A/S/D/Q/E/Space — movement and jump
GalaxyEggbertGame::Update()ESC (in Init → quit), F1 (debug toggle)
GalaxyEggbertGame::UpdateInit()1/2/3 (gamer select), S (settings)
GalaxyEggbertGame::UpdatePlay()ESC (pause)
GalaxyEggbertGame::UpdatePause()ESC (resume), S (settings)
GalaxyEggbertGame::UpdateWin()Space/Enter/ESC/arrows/mouse-left (continue)
GalaxyEggbertGame::UpdateLost()Same as Win (reset)
GalaxyEggbertGame::UpdateSettings()S (toggle sound), ESC (back)

Key Constants

Urho3D key constants used in the project: KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_W, KEY_A, KEY_S, KEY_D, KEY_Q, KEY_E, KEY_SPACE, KEY_RETURN, KEY_ESCAPE, KEY_1, KEY_2, KEY_3, KEY_F1, KEY_S.

Gamepad and Touch

Not Implemented Gamepad controller input is not implemented. Touch input for Android is planned but not yet implemented. Key bindings are hardcoded — there is no runtime remapping capability.