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
| Method | Behavior | Used for |
|---|---|---|
input->GetKeyDown(KEY_X) | Returns true every frame the key is held | Movement, rotation, strafe |
input->GetKeyPress(KEY_X) | Returns true only on the frame the key is first pressed | Jump, phase transitions, menu selection |
input->GetMouseButtonPress(MOUSEB_LEFT) | One-shot mouse button | Win/Lost screen continuation |
Where Input is Read
| Location | Keys 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.