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: main.cpp
- Revision:
- 19:bdfab290446a
- Parent:
- 16:33d8b58a1a65
- Child:
- 23:aa2a10451586
diff -r 879daedaff42 -r bdfab290446a main.cpp --- a/main.cpp Fri May 29 19:26:33 2020 +0000 +++ b/main.cpp Fri May 29 20:58:32 2020 +0000 @@ -35,53 +35,59 @@ /** functions */ int main() { - first_init(); - engine.timer(); - start(); - while (1) { - engine.read_input(pad); - engine.update(lcd, pad); - pad.leds_off(); - play_game(); - wait_ms(80); + #ifdef WITH_TESTING //running tests + int number_of_failures = run_all_tests(); + + if(number_of_failures > 0) return number_of_failures; + #endif + + first_init(); //first initilisation + engine.timer(); //starts the timer + start(); //runs the start screen + while (1) { //while start is pressed + engine.read_input(pad); //engine reads inputs + engine.update(lcd, pad); //engine updates + pad.leds_off(); //turns the leds off + play_game(); //starts the gameplay + wait_ms(80); //sets the fps } } void first_init() //initilises the gamepad and screen { - lcd.init(); - pad.init(); - engine.init(SWATTER_WIDTH,SWATTER_HEIGHT,BUG_SPEED); + lcd.init(); //initalises the lcd + pad.init(); //initlaises the gamepad + engine.init(SWATTER_WIDTH,SWATTER_HEIGHT,BUG_SPEED); //initalises the engine with the input values } void play_game() //starts the game and timer { - lcd.clear(); - engine.draw(lcd); - lcd.refresh(); + lcd.clear(); //clears the lcd + engine.draw(lcd); //engine draws the gameplay + lcd.refresh(); //refreshs the lcd } void start() //displays the start screen { - lcd.printString("Bug Splat",15,2); - lcd.printString("Leeds Edition",1,3); - lcd.refresh(); - pad.tone(500.0,0.5); - for (int i = 0; i < 5; i++) { + lcd.printString("Bug Splat",15,2); //lcd prints text + lcd.printString("Leeds Edition",1,3); //lcd prints text + lcd.refresh(); //lcd refreshes + pad.tone(500.0,0.5); //low pad tone plays + for (int i = 0; i < 5; i++) { //for loop flashes the leds pad.leds_on(); wait_ms(200); pad.leds_off(); wait_ms(200); } - pad.leds_off(); - lcd.clear(); - lcd.refresh(); - lcd.printString("Splat the bug",0,0); - lcd.printString("as fast",0,1); - lcd.printString("as you can!",0,2); - lcd.printString("Press start",0,5); - lcd.refresh(); - while ( pad.start_pressed() == false) { + pad.leds_off(); //leds are turned off + lcd.clear(); //lcd is cleared + lcd.refresh(); //lcd is refreshed + lcd.printString("Splat the bug",0,0); //lcd prints text + lcd.printString("as fast",0,1); //lcd prints text + lcd.printString("as you can!",0,2); //lcd prints text + lcd.printString("Press start",0,5); //lcd prints text + lcd.refresh(); //lcd refreshes + while ( pad.start_pressed() == false) { //when start is pressed lights turn off pad.leds_on(); } }