feat: add key handlers for tripod camera movement and rotation controls
This commit is contained in:
23
src/main.rs
23
src/main.rs
@@ -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:
|
||||
_ => {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user