From a70b7befc08646ea92282fa30b12bae811f22203 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sun, 15 Apr 2018 12:58:16 +0200 Subject: Added game over popup --- src/entities/bug.rs | 2 +- src/main.rs | 39 +++++++++++--- src_assets/sprites/Gameover.png | Bin 0 -> 36018 bytes src_assets/sprites/Gameover.svg | 100 ++++++++++++++++++++++++++++++++++++ src_assets/tiles/NumberFont_t30.png | Bin 4054 -> 0 bytes src_assets/tiles/NumberFont_t30.svg | 91 -------------------------------- src_assets/tiles/NumberFont_t60.png | Bin 0 -> 8358 bytes src_assets/tiles/NumberFont_t60.svg | 91 ++++++++++++++++++++++++++++++++ 8 files changed, 225 insertions(+), 98 deletions(-) create mode 100644 src_assets/sprites/Gameover.png create mode 100644 src_assets/sprites/Gameover.svg delete mode 100644 src_assets/tiles/NumberFont_t30.png delete mode 100644 src_assets/tiles/NumberFont_t30.svg create mode 100644 src_assets/tiles/NumberFont_t60.png create mode 100644 src_assets/tiles/NumberFont_t60.svg diff --git a/src/entities/bug.rs b/src/entities/bug.rs index 482e5c4..913253c 100644 --- a/src/entities/bug.rs +++ b/src/entities/bug.rs @@ -8,7 +8,7 @@ pub struct Bug { pub alive: bool } -const SPEED: f64 = 75.; +const SPEED: f64 = 175.; impl Bug { pub fn new(x: f64, y: f64, facing: f64) -> Bug { diff --git a/src/main.rs b/src/main.rs index 939c414..5547479 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,8 +96,8 @@ impl App for BugBasherGame { { let points_str = format!("{}", self.points); let lives_str = format!("{}", self.lives); - BugBasherGame::print_string(renderer, &points_str, - app_width / 2. + 50., app_height / 2. - 50.); - BugBasherGame::print_string(renderer, &lives_str, app_width / 2. - 50. - lives_str.len() as f64 * 25., app_height / 2. - 50.); + BugBasherGame::print_string(renderer, &points_str, Alignment::Left, - app_width / 2. + 50., app_height / 2. - 50.); + BugBasherGame::print_string(renderer, &lives_str, Alignment::Right, app_width / 2. - 50., app_height / 2. - 50.); } { let mut renderer = renderer.sprite_mode(); @@ -112,9 +112,29 @@ impl App for BugBasherGame { ); } } + + if self.game_over { + { + let mut renderer = renderer.sprite_mode(); + renderer.draw( + &Affine::translate(0.,0.), + SpriteId::Gameover + ); + } + { + let points_str = format!("{}", self.points); + BugBasherGame::print_string(renderer, &points_str, Alignment::Center, 0., -25.); + } + } } } +enum Alignment { + Left, + Right, + Center +} + impl BugBasherGame { fn new() -> BugBasherGame { let mut game = BugBasherGame { @@ -137,11 +157,18 @@ impl BugBasherGame { self.game_over = false; } - fn print_string(renderer: &mut Renderer, string: &str, x: f64, y: f64) { - let mut renderer = renderer.tiled_mode(-x, -y); - let spacing = 25.; + fn print_string(renderer: &mut Renderer, string: &str, alignment: Alignment, x: f64, y: f64) { + let letter_spacing = 25.; + let left = match alignment { + Alignment::Left => x, + Alignment::Right => x - string.len() as f64 * letter_spacing, + Alignment::Center => x - string.len() as f64 * letter_spacing / 2. + }; + + let mut renderer = renderer.tiled_mode(-left, -y); + for (i, c) in string.chars().enumerate() { - let affine = Affine::translate(i as f64 * spacing, 0.); + let affine = Affine::translate(i as f64 * letter_spacing, 0.); let tile = match c { '-' => TileId::NumberFontR0C0, '0' => TileId::NumberFontR0C1, diff --git a/src_assets/sprites/Gameover.png b/src_assets/sprites/Gameover.png new file mode 100644 index 0000000..794c4be Binary files /dev/null and b/src_assets/sprites/Gameover.png differ diff --git a/src_assets/sprites/Gameover.svg b/src_assets/sprites/Gameover.svg new file mode 100644 index 0000000..9845b4e --- /dev/null +++ b/src_assets/sprites/Gameover.svg @@ -0,0 +1,100 @@ + + + + + + + + + + image/svg+xml + + + + + + + + Game over!Your final score:Press enter to try again + + diff --git a/src_assets/tiles/NumberFont_t30.png b/src_assets/tiles/NumberFont_t30.png deleted file mode 100644 index 429b770..0000000 Binary files a/src_assets/tiles/NumberFont_t30.png and /dev/null differ diff --git a/src_assets/tiles/NumberFont_t30.svg b/src_assets/tiles/NumberFont_t30.svg deleted file mode 100644 index 8c89b70..0000000 --- a/src_assets/tiles/NumberFont_t30.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - -0123456789 - - diff --git a/src_assets/tiles/NumberFont_t60.png b/src_assets/tiles/NumberFont_t60.png new file mode 100644 index 0000000..12e0b26 Binary files /dev/null and b/src_assets/tiles/NumberFont_t60.png differ diff --git a/src_assets/tiles/NumberFont_t60.svg b/src_assets/tiles/NumberFont_t60.svg new file mode 100644 index 0000000..cc27fda --- /dev/null +++ b/src_assets/tiles/NumberFont_t60.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + -0123456789 + + -- cgit v1.2.3