diff --git a/src/app.rs b/src/app.rs index f86559c..2fe8e12 100644 --- a/src/app.rs +++ b/src/app.rs @@ -80,10 +80,8 @@ impl<'a> App<'a> { settings.text_dark_color[2]) .draw(gl); } -} -impl<'a> Game for App<'a> { - fn load(&mut self) { + pub fn load(&mut self) { let asset_store = AssetStore::from_folder(self.settings.asset_folder.as_slice()); self.number_renderer = Some(NumberRenderer::new(&asset_store)); @@ -92,7 +90,7 @@ impl<'a> Game for App<'a> { self.comment2 = Some(Texture::from_path(&asset_store.path("comment2.png").unwrap()).unwrap()); } - fn render(&mut self, args: &RenderArgs) { + pub fn render(&mut self, args: &RenderArgs) { self.gl.viewport(0, 0, args.width as i32, args.height as i32); let ref c = Context::abs(args.width as f64, args.height as f64); c.color(self.window_background_color).draw(&mut self.gl); @@ -101,11 +99,11 @@ impl<'a> Game for App<'a> { self.board.render(self.number_renderer.get_ref(), c, &mut self.gl); } - fn update(&mut self, args: &UpdateArgs) { + pub fn update(&mut self, args: &UpdateArgs) { self.board.update(args.dt); } - fn key_press(&mut self, args: &KeyPressArgs) { + pub fn key_press(&mut self, args: &KeyPressArgs) { if args.key == keyboard::Left { self.board.merge_from_right_to_left(); } diff --git a/src/main.rs b/src/main.rs index 2d79d20..1ba8bf3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,7 +20,7 @@ mod tile; fn main() { let settings = settings::Settings::load(); - let mut game_window = GameWindowSDL2::new( + let mut window = GameWindowSDL2::new( GameWindowSettings { title: "Rust-2048".to_string(), size: settings.window_size, @@ -30,10 +30,27 @@ fn main() { ); let mut app = app::App::new(&settings); + + app.load(); + let game_iter_settings = GameIteratorSettings { - updates_per_second: 120, - max_frames_per_second: 60, + updates_per_second: 120, + max_frames_per_second: 60, }; - app.run(&mut game_window, &game_iter_settings); + + for e in GameIterator::new(&mut window, &game_iter_settings) { + match e { + Render(ref args) => { + app.render(args); + }, + Update(ref args) => { + app.update(args); + }, + KeyPress(ref args) => { + app.key_press(args); + }, + _ => {}, + } + } } diff --git a/src/number_renderer.rs b/src/number_renderer.rs index 910b877..6bf149d 100644 --- a/src/number_renderer.rs +++ b/src/number_renderer.rs @@ -56,7 +56,7 @@ fn number_to_digits(number: u32) -> Vec { let mut n = number; while n != 0 { - digits.unshift(n % 10); + digits.insert(0, n % 10); n /= 10; } digits