Let KeyboardManager handle events.
Clean up event loop a little.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use sdl2::event::Event;
|
||||
use sdl2::keyboard::Keycode;
|
||||
|
||||
|
||||
pub struct KeyboardHandler {
|
||||
pressed_keys: HashMap<Keycode, bool>,
|
||||
released_keys: HashMap<Keycode, bool>,
|
||||
@@ -18,6 +18,20 @@ impl KeyboardHandler {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn process(&mut self, event: &Event) {
|
||||
match *event {
|
||||
Event::KeyDown {keycode, repeat, ..} => {
|
||||
if repeat == false {
|
||||
self.key_down(keycode.unwrap());
|
||||
}
|
||||
},
|
||||
Event::KeyUp {keycode, ..} => {
|
||||
self.key_up(keycode.unwrap());
|
||||
},
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
self.pressed_keys.clear();
|
||||
self.released_keys.clear();
|
||||
|
||||
Reference in New Issue
Block a user