Rosie Gillman

Dependencies:   mbed Gamepad2 ELEC2645_Project_el18rg

Dependents:   ELEC2645_Project_el18rg

https://os.mbed.com/media/uploads/el18rg/bug_splat_logo.png

Rosemary Gillman 201265952

Objective

The goal of the game is to splat the bug as fast as you can using the swatter.

Controls

1 - Joystick - left/right to control the swatter 2 - Start button - starts the game 3 - Reset - resets the game 4 - Volume pot - adjusts the volume https://os.mbed.com/media/uploads/el18rg/buttons.png

Instructions

  1. Turn the gamepad on
  2. Wait for start screen and press start
  3. Move the joystick to control the swatter
  4. Splat the bug as fast as you can
  5. Press reset to play again

Gameplay

Start Screen 1

  • Low pad tone plays for 0.5s
  • Pad lights flash (200ms on/200ms off)
  • Text saying "Bug Splat Leeds Edition" is displayed
  • After 5 flashes the screen changes to Start Screen 2

https://os.mbed.com/media/uploads/el18rg/intro_screen1.jpg

Start Screen 2

  • Pad lights stay on constantly
  • Text reads "Splat the bug as fast as you can! Press start"
  • When start is pressed the screen changes to Gamplay Screen

https://os.mbed.com/media/uploads/el18rg/intro_screen_2.jpg

Gameplay Screen

  • The timer begins
  • Bug appears in the top right corner
  • Swatter appears in the bottom left corner
  • The bug bounces (with random velocity/direction) off the sides
  • When the bug bounces off the wall a low pad tone is played each time for 0.1 seconds
  • Swatter is controlled left to right with the joystick
  • When the bug and swatter overlap the screen changes to the Ending Screen

https://os.mbed.com/media/uploads/el18rg/gameplay.jpg

Ending Screen

  • Low pad tone plays for 0.5s
  • The timer ends and its value is displayed
  • Text reads "SPLAT (time) secs"
  • Splats are drawn on the screen https://os.mbed.com/media/uploads/el18rg/end_screen.jpg
Committer:
el18rg
Date:
Thu May 28 20:52:37 2020 +0000
Revision:
9:e7dce4de0910
Child:
11:93da75c1849d
Changing ball to bug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18rg 9:e7dce4de0910 1 #include "Bug.h"
el18rg 9:e7dce4de0910 2
el18rg 9:e7dce4de0910 3 Bug::Bug(){}
el18rg 9:e7dce4de0910 4 Bug::~Bug(){}
el18rg 9:e7dce4de0910 5
el18rg 9:e7dce4de0910 6 void Bug::init(int speed)
el18rg 9:e7dce4de0910 7 {
el18rg 9:e7dce4de0910 8 _x = rand() % (100);
el18rg 9:e7dce4de0910 9 _y = 0;
el18rg 9:e7dce4de0910 10
el18rg 9:e7dce4de0910 11 _velocity.y = speed;
el18rg 9:e7dce4de0910 12 }
el18rg 9:e7dce4de0910 13
el18rg 9:e7dce4de0910 14 void Bug::draw(N5110 &lcd)
el18rg 9:e7dce4de0910 15 {
el18rg 9:e7dce4de0910 16 const int man[8][8] = {
el18rg 9:e7dce4de0910 17 {0,0,1,0,0,1,0,0},
el18rg 9:e7dce4de0910 18 {0,1,0,1,1,0,1,0},
el18rg 9:e7dce4de0910 19 {1,1,1,1,1,1,1,1},
el18rg 9:e7dce4de0910 20 {0,0,1,1,1,1,0,0},
el18rg 9:e7dce4de0910 21 {1,1,1,1,1,1,1,1},
el18rg 9:e7dce4de0910 22 {0,0,1,1,1,1,0,0},
el18rg 9:e7dce4de0910 23 {0,1,0,0,0,0,1,0},
el18rg 9:e7dce4de0910 24 {1,0,0,0,0,0,0,1},
el18rg 9:e7dce4de0910 25 };
el18rg 9:e7dce4de0910 26 lcd.drawSprite(_x,_y,8,8,(int *)man);
el18rg 9:e7dce4de0910 27 }
el18rg 9:e7dce4de0910 28 void Bug::drawsplat(N5110 &lcd)
el18rg 9:e7dce4de0910 29 {
el18rg 9:e7dce4de0910 30 const int splat[8][8] = {
el18rg 9:e7dce4de0910 31 {0,0,1,0,0,1,0,0},
el18rg 9:e7dce4de0910 32 {0,1,0,1,1,0,1,0},
el18rg 9:e7dce4de0910 33 {1,1,1,1,1,1,1,1},
el18rg 9:e7dce4de0910 34 {0,0,1,1,1,1,0,0},
el18rg 9:e7dce4de0910 35 {1,1,1,1,1,1,1,1},
el18rg 9:e7dce4de0910 36 {0,0,1,1,1,1,0,0},
el18rg 9:e7dce4de0910 37 {0,1,0,0,0,0,1,0},
el18rg 9:e7dce4de0910 38 {1,0,0,0,0,0,0,1},
el18rg 9:e7dce4de0910 39 };
el18rg 9:e7dce4de0910 40 lcd.drawSprite(_x,_y,8,8,(int *)splat);
el18rg 9:e7dce4de0910 41 }
el18rg 9:e7dce4de0910 42
el18rg 9:e7dce4de0910 43 void Bug::update()
el18rg 9:e7dce4de0910 44 {
el18rg 9:e7dce4de0910 45 _x += _velocity.x;
el18rg 9:e7dce4de0910 46 _y += _velocity.y;
el18rg 9:e7dce4de0910 47 }
el18rg 9:e7dce4de0910 48
el18rg 9:e7dce4de0910 49 void Bug::set_velocity(Vector2D v)
el18rg 9:e7dce4de0910 50 {
el18rg 9:e7dce4de0910 51 _velocity.x = v.x;
el18rg 9:e7dce4de0910 52 _velocity.y = v.y;
el18rg 9:e7dce4de0910 53 }
el18rg 9:e7dce4de0910 54
el18rg 9:e7dce4de0910 55 Vector2D Bug::get_velocity()
el18rg 9:e7dce4de0910 56 {
el18rg 9:e7dce4de0910 57 Vector2D v = {_velocity.x,_velocity.y};
el18rg 9:e7dce4de0910 58 return v;
el18rg 9:e7dce4de0910 59 }
el18rg 9:e7dce4de0910 60
el18rg 9:e7dce4de0910 61 Vector2D Bug::get_pos()
el18rg 9:e7dce4de0910 62 {
el18rg 9:e7dce4de0910 63 Vector2D p = {_x,_y};
el18rg 9:e7dce4de0910 64 return p;
el18rg 9:e7dce4de0910 65 }
el18rg 9:e7dce4de0910 66
el18rg 9:e7dce4de0910 67 void Bug::set_pos(Vector2D p)
el18rg 9:e7dce4de0910 68 {
el18rg 9:e7dce4de0910 69 _x = p.x;
el18rg 9:e7dce4de0910 70 _y = p.y;
el18rg 9:e7dce4de0910 71 }