feat: add key handlers for tripod camera movement and rotation controls

This commit is contained in:
2025-09-17 22:34:34 +02:00
parent f6422f403e
commit 861c6ebd62

View File

@@ -270,19 +270,22 @@ fn main() {
}
}
// Handle keyboard input
// Handle keyboard input for camera movement and rotation
if let Ok(keys) = pressed_keys.lock() {
for key in keys.iter() {
match key {
// The `VirtualKeyCode` enum is defined here:
// https://docs.rs/winit/0.25.0/winit/event/enum.VirtualKeyCode.html
VirtualKeyCode::A => {
_arbitrary_number += delta_time;
}
VirtualKeyCode::D => {
_arbitrary_number -= delta_time;
}
// Movement: WASD + Space (up) + LShift (down)
VirtualKeyCode::W => { cam_pos.z -= delta_time; }
VirtualKeyCode::S => { cam_pos.z += delta_time; }
VirtualKeyCode::A => { cam_pos.x -= delta_time; }
VirtualKeyCode::D => { cam_pos.x += delta_time; }
VirtualKeyCode::Space => { cam_pos.y += delta_time; }
VirtualKeyCode::LShift => { cam_pos.y -= delta_time; }
// Rotation: arrow keys for yaw and pitch
VirtualKeyCode::Left => { cam_yaw -= delta_time; }
VirtualKeyCode::Right => { cam_yaw += delta_time; }
VirtualKeyCode::Up => { cam_pitch += delta_time; }
VirtualKeyCode::Down => { cam_pitch -= delta_time; }
// default handler:
_ => {}
}