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
Swatter/Swatter.cpp
- Committer:
- el18rg
- Date:
- 2020-05-28
- Revision:
- 10:b6e45e4acde7
- Child:
- 11:93da75c1849d
File content as of revision 10:b6e45e4acde7:
#include "Swatter.h" Swatter::Swatter(){} // Constuctor Swatter::~Swatter(){} // Destructor void Swatter::init(int x,int height,int width) //starting postion for the Swatter { _x = x; _y = HEIGHT - 10; _height = height; _width = width; _speed = 1; } void Swatter::draw(N5110 &lcd) //draws the Swatter in the start pos { const int man[10][9] = { //the array for the Swatter, 1=pixel turn on. {1,1,1,1,1,1,1,1,1}, {1,0,1,0,1,0,1,0,1}, {1,1,0,1,0,1,0,1,1}, {1,0,1,0,1,0,1,0,1}, {1,1,0,1,0,1,0,1,1}, {1,1,1,1,1,1,1,1,1}, {0,0,0,0,1,0,0,0,0}, {0,0,0,0,1,0,0,0,0}, {0,0,0,0,1,0,0,0,0}, {0,0,0,0,1,0,0,0,0}, }; //draws the Swatter lcd.drawSprite(_x,_y,10,9,(int *)man); } void Swatter::update(Direction d,float mag) { _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future // update y value depending on direction of movement // North is decrement as origin is at the top-left so decreasing moves up if (d == E) { _x+=_speed; } else if (d == W) { _x-=_speed; } // check the y origin to ensure that the paddle doesn't go off screen if (_x < 1) { _x = 1; } if (_x > WIDTH - _width - 1) { _x = WIDTH - _width - 8; } } Vector2D Swatter::get_pos() { Vector2D p = {_x,_y}; return p; }