Refactor input
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 7m43s
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 7m43s
This commit is contained in:
parent
1976a8b53e
commit
8c42e7b139
14 changed files with 439 additions and 159 deletions
36
src/main.rs
36
src/main.rs
|
@ -1,6 +1,14 @@
|
|||
use core::input::{
|
||||
InputManager,
|
||||
virtual_binding::{AxisDirection, VirtualBinding},
|
||||
};
|
||||
|
||||
use vulkano::device::{DeviceExtensions, DeviceFeatures};
|
||||
use vulkano_util::context::{VulkanoConfig, VulkanoContext};
|
||||
use winit::event_loop::{ControlFlow, EventLoop};
|
||||
use winit::{
|
||||
event_loop::{ControlFlow, EventLoop},
|
||||
keyboard::{KeyCode, PhysicalKey},
|
||||
};
|
||||
|
||||
mod core;
|
||||
mod game;
|
||||
|
@ -8,6 +16,30 @@ mod game;
|
|||
fn main() {
|
||||
env_logger::init();
|
||||
|
||||
let mut input_manager = InputManager::default();
|
||||
input_manager.add_virtual_bindings(
|
||||
"move_forward".to_string(),
|
||||
vec![
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyW), AxisDirection::Positive),
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyS), AxisDirection::Negative),
|
||||
],
|
||||
);
|
||||
input_manager.add_virtual_bindings(
|
||||
"move_right".to_string(),
|
||||
vec![
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyD), AxisDirection::Positive),
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyA), AxisDirection::Negative),
|
||||
],
|
||||
);
|
||||
input_manager.add_virtual_bindings(
|
||||
"mouse_x".to_string(),
|
||||
vec![VirtualBinding::MouseX(AxisDirection::Positive)],
|
||||
);
|
||||
input_manager.add_virtual_bindings(
|
||||
"mouse_y".to_string(),
|
||||
vec![VirtualBinding::MouseY(AxisDirection::Positive)],
|
||||
);
|
||||
|
||||
let device_extensions = DeviceExtensions {
|
||||
khr_swapchain: true,
|
||||
..Default::default()
|
||||
|
@ -30,7 +62,7 @@ fn main() {
|
|||
let event_loop = EventLoop::new().unwrap();
|
||||
event_loop.set_control_flow(ControlFlow::Poll);
|
||||
|
||||
let mut app = core::render::app::App::from(vulkano_context);
|
||||
let mut app = core::app::App::new(vulkano_context, input_manager);
|
||||
|
||||
match event_loop.run_app(&mut app) {
|
||||
Ok(_) => {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue