Let KeyboardManager handle events.

Clean up event loop a little.
This commit is contained in:
2016-06-12 21:48:27 +02:00
parent 19a1f4b8f9
commit 4c2b5a994c
2 changed files with 17 additions and 12 deletions

View File

@@ -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();