Rosie Gillman
Dependencies: mbed Gamepad2 ELEC2645_Project_el18rg
Dependents: ELEC2645_Project_el18rg
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
Instructions
- Turn the gamepad on
- Wait for start screen and press start
- Move the joystick to control the swatter
- Splat the bug as fast as you can
- 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
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
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
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
Diff: Engine/Engine.cpp
- Revision:
- 15:4ed54ff548cf
- Parent:
- 14:9b4a219dd91e
- Child:
- 16:33d8b58a1a65
--- a/Engine/Engine.cpp Fri May 29 14:59:59 2020 +0000 +++ b/Engine/Engine.cpp Fri May 29 15:38:14 2020 +0000 @@ -4,10 +4,10 @@ #include "N5110.h" #include<ctime> -Engine::Engine() {} -Engine::~Engine() {} +Engine::Engine() {} //Constuctor +Engine::~Engine() {} //Destructor -void Engine::init(int swatter_width,int swatter_height,int speed) +void Engine::init(int swatter_width,int swatter_height,int speed) //initalises the game { width = swatter_width; height = swatter_height; @@ -17,26 +17,26 @@ _bug.init(_speed); } -void Engine::read_input(Gamepad &pad) +void Engine::read_input(Gamepad &pad) //reads the direction and magnitude inputs { _d = pad.get_direction(); _mag = pad.get_mag(); } -void Engine::draw(N5110 &lcd) +void Engine::draw(N5110 &lcd) //draws the bug and swatter { _bug.draw(lcd); _swatter.draw(lcd); } -void Engine::update(N5110 & lcd, Gamepad & pad) +void Engine::update(N5110 & lcd, Gamepad & pad) //updates the game { _swatter.update(_d,_mag); _bug.update(); check_side_collision(pad); check_swatter_collisions(lcd, pad); } -void Engine::check_side_collision(Gamepad &pad) +void Engine::check_side_collision(Gamepad &pad) //checks if the bug collides with the sides and redirects it { srand(time(NULL)); Vector2D bug_pos = _bug.get_pos(); @@ -68,7 +68,7 @@ _bug.set_velocity(bug_velocity); _bug.set_pos(bug_pos); } -void Engine::check_swatter_collisions(N5110 & lcd, Gamepad & pad) +void Engine::check_swatter_collisions(N5110 & lcd, Gamepad & pad) //checks if the swatter and bug have collided { Vector2D bug_pos = _bug.get_pos(); Vector2D p_pos = _swatter.get_pos(); @@ -88,11 +88,11 @@ ending(lcd, pad); } } -void Engine::timer() +void Engine::timer() //starts the timer off { start = clock(); } -void Engine::ending(N5110 & lcd, Gamepad & pad) +void Engine::ending(N5110 & lcd, Gamepad & pad) //runs end of the game sequence { lcd.clear(); end = clock();