Refactor input
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 7m43s

This commit is contained in:
Florian RICHER 2025-05-27 17:13:22 +02:00
parent 1976a8b53e
commit 8c42e7b139
Signed by: florian.richer
GPG key ID: C73D37CBED7BFC77
14 changed files with 439 additions and 159 deletions

View file

@ -1,4 +1,4 @@
use crate::core::input::InputState;
use crate::core::input::InputManager;
use crate::core::render::primitives::camera::Camera;
use crate::core::render::primitives::vertex::Vertex2D;
use crate::core::render::render_context::RenderContext;
@ -115,39 +115,30 @@ impl Scene for MainScene {
})
}
fn update(&mut self, render_context: &RenderContext, input_state: &InputState, timer: &Timer) {
fn update(
&mut self,
render_context: &RenderContext,
input_manager: &InputManager,
timer: &Timer,
) {
let state = self.state.as_mut().unwrap();
let speed = 50.0 * timer.delta_time();
let mut rot = Quat::default();
rot *= Quat::from_rotation_y(input_state.mouse_state.delta.x * speed.to_radians());
rot *= Quat::from_rotation_x(input_state.mouse_state.delta.y * speed.to_radians());
rot *= Quat::from_rotation_y(
input_manager.get_virtual_input_state("mouse_x") * speed.to_radians(),
);
rot *= Quat::from_rotation_x(
input_manager.get_virtual_input_state("mouse_y") * speed.to_radians(),
);
state.camera.get_transform_mut().rotate(rot);
let translation_x = if input_state.get_key_state(PhysicalKey::Code(KeyCode::KeyA))
== &ElementState::Pressed
{
timer.delta_time() * speed
} else if input_state.get_key_state(PhysicalKey::Code(KeyCode::KeyD))
== &ElementState::Pressed
{
timer.delta_time() * -speed
} else {
timer.delta_time() * 0.0
};
let translation_x =
input_manager.get_virtual_input_state("move_right") * timer.delta_time() * speed;
let translation_z = if input_state.get_key_state(PhysicalKey::Code(KeyCode::KeyW))
== &ElementState::Pressed
{
timer.delta_time() * speed
} else if input_state.get_key_state(PhysicalKey::Code(KeyCode::KeyS))
== &ElementState::Pressed
{
timer.delta_time() * -speed
} else {
timer.delta_time() * 0.0
};
let translation_z =
input_manager.get_virtual_input_state("move_forward") * timer.delta_time() * speed;
state
.camera