Give downstream a Vec instead of the pump
This commit is contained in:
parent
c344049fd3
commit
475166b573
|
@ -50,7 +50,7 @@ impl Game {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run<F: Fn(&mut Canvas<Window>, &mut EventPump)>(&self, func: F) -> Result<()> {
|
pub fn run<F: Fn(&mut Canvas<Window>, Vec<Event>)>(&self, func: F) -> Result<()> {
|
||||||
let sdl_context = sdl2::init()?;
|
let sdl_context = sdl2::init()?;
|
||||||
let video_subsystem = sdl_context.video()?;
|
let video_subsystem = sdl_context.video()?;
|
||||||
|
|
||||||
|
@ -67,7 +67,8 @@ impl Game {
|
||||||
if self.stopped.get() {
|
if self.stopped.get() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
func(&mut canvas, &mut event_pump);
|
let events = event_pump.poll_iter().collect::<Vec<Event>>();
|
||||||
|
func(&mut canvas, events);
|
||||||
canvas.present();
|
canvas.present();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
use catbox::{Event, Game, Keycode};
|
use catbox::{Event, Game, Keycode};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut game = Game::new("catbox demo", 1000, 800);
|
let game = Game::new("catbox demo", 1000, 800);
|
||||||
|
|
||||||
game.run(|canvas, event_pump| {
|
game.run(|canvas, event_pump| {
|
||||||
canvas.set_draw_color(catbox::Color::RGB(0, 59, 111));
|
canvas.set_draw_color(catbox::Color::RGB(0, 59, 111));
|
||||||
canvas.clear();
|
canvas.clear();
|
||||||
for event in event_pump.poll_iter() {
|
for event in event_pump {
|
||||||
match event {
|
match event {
|
||||||
Event::Quit { .. }
|
Event::Quit { .. }
|
||||||
| Event::KeyDown {
|
| Event::KeyDown {
|
||||||
|
|
Loading…
Reference in a new issue