aboutsummaryrefslogtreecommitdiff
path: root/pixel-client/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-25 14:34:18 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-25 14:34:18 +0200
commit16dbbba23e3534105707fbb861a1dce5d9ef2f0e (patch)
tree44b2f81349e22ff12ad9e36db1893a02455548c8 /pixel-client/src/main.rs
parentecb6ff15c24841dc08ab8f5c3b347c8080720ac4 (diff)
downloadhurrycurry-16dbbba23e3534105707fbb861a1dce5d9ef2f0e.tar
hurrycurry-16dbbba23e3534105707fbb861a1dce5d9ef2f0e.tar.bz2
hurrycurry-16dbbba23e3534105707fbb861a1dce5d9ef2f0e.tar.zst
button interact behavior
Diffstat (limited to 'pixel-client/src/main.rs')
-rw-r--r--pixel-client/src/main.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/pixel-client/src/main.rs b/pixel-client/src/main.rs
index b072a7e0..247cd636 100644
--- a/pixel-client/src/main.rs
+++ b/pixel-client/src/main.rs
@@ -25,6 +25,7 @@ use render::Renderer;
use sdl2::{
event::Event,
keyboard::{KeyboardState, Keycode},
+ mouse::MouseState,
pixels::Color,
};
use std::time::{Duration, Instant};
@@ -106,10 +107,12 @@ fn main() {
renderer.size = Vec2::new(width as f32, height as f32);
let keyboard = KeyboardState::new(&events);
+ let mouse = MouseState::new(&events);
+
let dt = last_tick.elapsed().min(Duration::from_secs_f32(1. / 30.));
match &mut state {
State::Ingame(x) => x.tick(dt.as_secs_f32(), &keyboard, renderer.atlas_layout()),
- State::Menu(x) => x.tick(dt.as_secs_f32(), &keyboard, renderer.atlas_layout()),
+ State::Menu(x) => x.tick(dt.as_secs_f32(), &keyboard, &mouse, renderer.atlas_layout()),
}
last_tick += dt;
@@ -132,6 +135,20 @@ fn main() {
keycode: Option::Some(Keycode::Escape),
..
} => break 'mainloop,
+ Event::KeyUp {
+ keycode: Some(keycode),
+ ..
+ } => match &mut state {
+ State::Ingame(_) => (),
+ State::Menu(menu) => menu.keyboard_event(keycode, false),
+ },
+ Event::KeyDown {
+ keycode: Some(keycode),
+ ..
+ } => match &mut state {
+ State::Ingame(_) => (),
+ State::Menu(menu) => menu.keyboard_event(keycode, true),
+ },
_ => {}
}
}