34 lines
864 B
Rust
34 lines
864 B
Rust
#[derive(Debug, Default)]
|
|
pub struct MouseIO {
|
|
pub position: [f32; 2], // 鼠标当前位置
|
|
pub drag_delta: Option<[f32; 2]>, // 拖动开始时的鼠标位置
|
|
pub is_dragging: bool, // 是否正在拖动
|
|
pub left_button_pressed: bool, // 左键是否被按下
|
|
pub right_button_pressed: bool, // 右键是否被按下
|
|
pub wheel_delta: f32, // 鼠标滚轮变化值
|
|
pub drag_sum: [f32; 2], // 拖动累计值
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct KeyboardIO {
|
|
pub keys: [bool; 4], // 键盘按键状态
|
|
}
|
|
|
|
impl Default for KeyboardIO {
|
|
fn default() -> Self {
|
|
Self { keys: [false; 4] }
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Default)]
|
|
pub struct IO {
|
|
pub mouse: MouseIO,
|
|
pub keyboard: KeyboardIO,
|
|
}
|
|
|
|
impl IO {
|
|
pub fn reset(&mut self) {
|
|
self.mouse.wheel_delta = 0.0;
|
|
}
|
|
}
|