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@9:e7dce4de0910, 2020-05-28 (annotated)
- 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?
User | Revision | Line number | New 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 | } |