input: Add support for Axis, Mouse Button, MouseWheel
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 7m50s
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 7m50s
This commit is contained in:
parent
8c42e7b139
commit
b0f82b0714
9 changed files with 308 additions and 160 deletions
74
src/main.rs
74
src/main.rs
|
@ -1,11 +1,10 @@
|
|||
use core::input::{
|
||||
InputManager,
|
||||
virtual_binding::{AxisDirection, VirtualBinding},
|
||||
};
|
||||
use core::input::{AxisDirection, InputManager, VirtualBinding};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use vulkano::device::{DeviceExtensions, DeviceFeatures};
|
||||
use vulkano_util::context::{VulkanoConfig, VulkanoContext};
|
||||
use winit::{
|
||||
event::MouseButton,
|
||||
event_loop::{ControlFlow, EventLoop},
|
||||
keyboard::{KeyCode, PhysicalKey},
|
||||
};
|
||||
|
@ -16,29 +15,50 @@ 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 input_manager = InputManager::new(HashMap::from([
|
||||
(
|
||||
"move_forward".to_string(),
|
||||
vec![
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyW), AxisDirection::Normal),
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyS), AxisDirection::Invert),
|
||||
VirtualBinding::Axis(0, AxisDirection::Normal, 1.0),
|
||||
],
|
||||
),
|
||||
(
|
||||
"move_right".to_string(),
|
||||
vec![
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyD), AxisDirection::Normal),
|
||||
VirtualBinding::Keyboard(PhysicalKey::Code(KeyCode::KeyA), AxisDirection::Invert),
|
||||
VirtualBinding::Axis(1, AxisDirection::Normal, 1.0),
|
||||
],
|
||||
),
|
||||
(
|
||||
"mouse_x".to_string(),
|
||||
vec![VirtualBinding::MouseX(AxisDirection::Normal)],
|
||||
),
|
||||
(
|
||||
"mouse_y".to_string(),
|
||||
vec![VirtualBinding::MouseY(AxisDirection::Normal)],
|
||||
),
|
||||
(
|
||||
"mouse_wheel".to_string(),
|
||||
vec![VirtualBinding::MouseWheelY(AxisDirection::Normal)],
|
||||
),
|
||||
(
|
||||
"mouse_left".to_string(),
|
||||
vec![VirtualBinding::MouseButton(
|
||||
MouseButton::Left,
|
||||
AxisDirection::Normal,
|
||||
)],
|
||||
),
|
||||
(
|
||||
"mouse_right".to_string(),
|
||||
vec![VirtualBinding::MouseButton(
|
||||
MouseButton::Right,
|
||||
AxisDirection::Normal,
|
||||
)],
|
||||
),
|
||||
]));
|
||||
|
||||
let device_extensions = DeviceExtensions {
|
||||
khr_swapchain: true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue