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
Bug/Bug.cpp
- Committer:
- el18rg
- Date:
- 2020-05-29
- Revision:
- 19:bdfab290446a
- Parent:
- 16:33d8b58a1a65
File content as of revision 19:bdfab290446a:
#include "Bug.h" Bug::Bug() {} //Constuctor Bug::~Bug() {} //Destructor void Bug::init(int speed) //initilises the bug parameters { _x = 50; //starts the bug at a x-axis of 50 _y = 0; //starts the bug at a y-axis of 0 _velocity.y = speed; //sets the speed to the y-axis velocity } void Bug::draw(N5110 &lcd) //draws the bug { const int buggy[8][8] = { //The array for the bug, 1=pixel turn on {0,0,1,0,0,1,0,0}, {0,1,0,1,1,0,1,0}, {1,1,1,1,1,1,1,1}, {0,0,1,1,1,1,0,0}, {1,1,1,1,1,1,1,1}, {0,0,1,1,1,1,0,0}, {0,1,0,0,0,0,1,0}, {1,0,0,0,0,0,0,1}, }; lcd.drawSprite(_x,_y,8,8,(int *)buggy); //draws the bug } void Bug::update() //updates the bug's velocity/direction { _x += _velocity.x; //updates the x-axis velocity _y += _velocity.y; //updates the y-axis velocity } void Bug::set_velocity(Vector2D v) //sets the bug's velocity { _velocity.x = v.x; //sets the x-axis velocity _velocity.y = v.y; //sets the y-axis velocity } Vector2D Bug::get_velocity() //gets the bug's actual velocity { Vector2D v = {_velocity.x,_velocity.y}; //actual bug velocity vector return v; //returns the vector value } Vector2D Bug::get_pos() //gets the bug's actual position { Vector2D p = {_x,_y}; return p; } void Bug::set_pos(Vector2D p) //sets the bug's position { _x = p.x; _y = p.y; }