diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-25 14:34:18 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-25 14:34:18 +0200 |
commit | 16dbbba23e3534105707fbb861a1dce5d9ef2f0e (patch) | |
tree | 44b2f81349e22ff12ad9e36db1893a02455548c8 /pixel-client/src/main.rs | |
parent | ecb6ff15c24841dc08ab8f5c3b347c8080720ac4 (diff) | |
download | hurrycurry-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.rs | 19 |
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), + }, _ => {} } } |