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:
Fri May 29 21:49:53 2020 +0000
Revision:
24:6e6bcdd22159
Parent:
19:bdfab290446a
Final Submission. I have read and agreed with Statement of Academic Integrity

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18rg 9:e7dce4de0910 1 #include "Bug.h"
el18rg 9:e7dce4de0910 2
el18rg 15:4ed54ff548cf 3 Bug::Bug() {} //Constuctor
el18rg 15:4ed54ff548cf 4 Bug::~Bug() {} //Destructor
el18rg 9:e7dce4de0910 5
el18rg 15:4ed54ff548cf 6 void Bug::init(int speed) //initilises the bug parameters
el18rg 9:e7dce4de0910 7 {
el18rg 16:33d8b58a1a65 8 _x = 50; //starts the bug at a x-axis of 50
el18rg 15:4ed54ff548cf 9 _y = 0; //starts the bug at a y-axis of 0
el18rg 15:4ed54ff548cf 10 _velocity.y = speed; //sets the speed to the y-axis velocity
el18rg 9:e7dce4de0910 11 }
el18rg 9:e7dce4de0910 12
el18rg 19:bdfab290446a 13 void Bug::draw(N5110 &lcd) //draws the bug
el18rg 9:e7dce4de0910 14 {
el18rg 15:4ed54ff548cf 15 const int buggy[8][8] = { //The array for the bug, 1=pixel turn on
el18rg 11:93da75c1849d 16 {0,0,1,0,0,1,0,0},
el18rg 11:93da75c1849d 17 {0,1,0,1,1,0,1,0},
el18rg 11:93da75c1849d 18 {1,1,1,1,1,1,1,1},
el18rg 11:93da75c1849d 19 {0,0,1,1,1,1,0,0},
el18rg 11:93da75c1849d 20 {1,1,1,1,1,1,1,1},
el18rg 11:93da75c1849d 21 {0,0,1,1,1,1,0,0},
el18rg 11:93da75c1849d 22 {0,1,0,0,0,0,1,0},
el18rg 11:93da75c1849d 23 {1,0,0,0,0,0,0,1},
el18rg 9:e7dce4de0910 24 };
el18rg 15:4ed54ff548cf 25 lcd.drawSprite(_x,_y,8,8,(int *)buggy); //draws the bug
el18rg 9:e7dce4de0910 26 }
el18rg 9:e7dce4de0910 27
el18rg 19:bdfab290446a 28 void Bug::update() //updates the bug's velocity/direction
el18rg 9:e7dce4de0910 29 {
el18rg 19:bdfab290446a 30 _x += _velocity.x; //updates the x-axis velocity
el18rg 19:bdfab290446a 31 _y += _velocity.y; //updates the y-axis velocity
el18rg 9:e7dce4de0910 32 }
el18rg 9:e7dce4de0910 33
el18rg 15:4ed54ff548cf 34 void Bug::set_velocity(Vector2D v) //sets the bug's velocity
el18rg 9:e7dce4de0910 35 {
el18rg 19:bdfab290446a 36 _velocity.x = v.x; //sets the x-axis velocity
el18rg 19:bdfab290446a 37 _velocity.y = v.y; //sets the y-axis velocity
el18rg 9:e7dce4de0910 38 }
el18rg 9:e7dce4de0910 39
el18rg 15:4ed54ff548cf 40 Vector2D Bug::get_velocity() //gets the bug's actual velocity
el18rg 9:e7dce4de0910 41 {
el18rg 19:bdfab290446a 42 Vector2D v = {_velocity.x,_velocity.y}; //actual bug velocity vector
el18rg 19:bdfab290446a 43 return v; //returns the vector value
el18rg 9:e7dce4de0910 44 }
el18rg 9:e7dce4de0910 45
el18rg 15:4ed54ff548cf 46 Vector2D Bug::get_pos() //gets the bug's actual position
el18rg 9:e7dce4de0910 47 {
el18rg 9:e7dce4de0910 48 Vector2D p = {_x,_y};
el18rg 9:e7dce4de0910 49 return p;
el18rg 9:e7dce4de0910 50 }
el18rg 9:e7dce4de0910 51
el18rg 15:4ed54ff548cf 52 void Bug::set_pos(Vector2D p) //sets the bug's position
el18rg 9:e7dce4de0910 53 {
el18rg 9:e7dce4de0910 54 _x = p.x;
el18rg 9:e7dce4de0910 55 _y = p.y;
el18rg 9:e7dce4de0910 56 }