From 080203806aa23b2ae1ec400ac31b05cf1ecf75ad Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sun, 5 Aug 2018 23:31:13 +0200 Subject: Updated Gate version The position of the origin has changed... now all of my positioning of things is off. --- src/main.rs | 64 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 00b7807..db96656 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,6 @@ extern crate gate; -use gate::{App, Audio}; -use gate::app_info::AppInfo; -use gate::input::*; +use gate::{App, AppContext, AppInfo, KeyCode}; use gate::renderer::{Renderer, Affine}; extern crate rand; @@ -38,10 +36,13 @@ struct BugBasherGame { } impl App for BugBasherGame { - fn start(&mut self, _audio: &mut Audio) { + fn start(&mut self, _ctx: &mut AppContext) { } - fn advance(&mut self, seconds: f64, _audio: &mut Audio) -> bool { + fn advance(&mut self, seconds: f64, ctx: &mut AppContext) { + let (x, y) = ctx.cursor(); + self.cursor_pos = Vec2d::new(x, y); + if !self.game_over { self.bugs.retain(|b| b.alive); for bug in self.bugs.iter_mut() { @@ -83,13 +84,12 @@ impl App for BugBasherGame { } } - - true } - fn input(&mut self, evt: InputEvent, _audio: &mut Audio) -> bool { - match evt { - InputEvent::MousePressed(MouseButton::Left, x, y) => { + fn key_down(&mut self, key: KeyCode, ctx: &mut AppContext) { + let (x, y) = ctx.cursor(); + match key { + KeyCode::MouseLeft => { for bug in self.bugs.iter_mut().filter(|bug| bug.touches_point(Vec2d { x, y })) { if !self.game_over && bug.alive == true { self.points += 1; @@ -98,19 +98,15 @@ impl App for BugBasherGame { bug.alive = false; } }, - InputEvent::MouseMotion(x, y) => { - self.cursor_pos = Vec2d::new(x,y); - }, - InputEvent::KeyPressed(KeyCode::Return) => { + KeyCode::Return => { self.reset(); }, _ => {} } - true } - fn render(&mut self, renderer: &mut Renderer) { - let (app_width, app_height) = (renderer.app_width(), renderer.app_height()); + fn render(&mut self, renderer: &mut Renderer, ctx: &AppContext) { + let (app_width, app_height) = ctx.dims(); renderer.clear((255,255,255)); { let points_str = format!("{}", self.points); @@ -202,23 +198,22 @@ impl BugBasherGame { Alignment::Center => x - string.len() as f64 * letter_spacing / 2. }; - let mut renderer = renderer.tiled_mode(-left, -y); - + let mut renderer = renderer.sprite_mode(); for (i, c) in string.chars().enumerate() { - let affine = Affine::translate(i as f64 * letter_spacing, 0.); + let affine = Affine::translate(i as f64 * letter_spacing - left, -y); let tile = match c { - '-' => TileId::NumberFontR0C0, - '0' => TileId::NumberFontR0C1, - '1' => TileId::NumberFontR0C2, - '2' => TileId::NumberFontR0C3, - '3' => TileId::NumberFontR0C4, - '4' => TileId::NumberFontR0C5, - '5' => TileId::NumberFontR0C6, - '6' => TileId::NumberFontR0C7, - '7' => TileId::NumberFontR0C8, - '8' => TileId::NumberFontR0C9, - '9' => TileId::NumberFontR0C10, - _ => TileId::NumberFontR0C0, + '-' => SpriteId::NumberFontR0C0, + '0' => SpriteId::NumberFontR0C1, + '1' => SpriteId::NumberFontR0C2, + '2' => SpriteId::NumberFontR0C3, + '3' => SpriteId::NumberFontR0C4, + '4' => SpriteId::NumberFontR0C5, + '5' => SpriteId::NumberFontR0C6, + '6' => SpriteId::NumberFontR0C7, + '7' => SpriteId::NumberFontR0C8, + '8' => SpriteId::NumberFontR0C9, + '9' => SpriteId::NumberFontR0C10, + _ => SpriteId::NumberFontR0C0, }; renderer.draw(&affine, tile); }; @@ -226,6 +221,9 @@ impl BugBasherGame { } fn main() { - let info = AppInfo::with_app_height(1000.).title("Bug Basher").build(); + let info = AppInfo::with_max_dims(2000., 1000.) + .min_dims(500., 1000.) + .tile_width(16) + .title("Nap Attack"); gate::run(info, BugBasherGame::new()); } -- cgit v1.2.3