![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
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:
- 2:b936aa854de2
- Parent:
- 1:8fdb6a804c74
- Child:
- 7:b5ef03efe784
--- a/main.cpp Thu Apr 09 18:59:45 2020 +0000 +++ b/main.cpp Wed May 27 01:35:20 2020 +0000 @@ -1,48 +1,90 @@ /* -BEER PONG - STUDENT EDITION -Rosemary Gillman -ELEC2645 Project -EL18RG -**STUDENT NUMBER** +ELEC2645 Embedded Systems Project +School of Electronic & Electrical Engineering +University of Leeds +2019/20 + +Name: Rosemary Gillman +Username: EL18RG +Student ID Number: 201265952 +Date:10/03/20 */ +// includes #include "mbed.h" #include "Gamepad.h" #include "N5110.h" +#include "Cups.h" +#include "Ball.h" +#include "Engine.h" +#define PADDLE_WIDTH 2 +#define PADDLE_HEIGHT 8 +#define BALL_SIZE 2 +#define BALL_SPEED 3 + +// objects Gamepad pad; N5110 lcd; +Engine engine; +Cups cups; +Ball ball; + +//prototypes +void first_init(); +void start(); +void play_game(); int main() { - lcd.init(); //set the LED contrast - lcd.setContrast(0.5); + first_init(); + start(); + while (1) { + engine.read_input(pad); + engine.update(pad); + pad.leds_off(); + play_game(); + wait_ms(80); + } +} + +void first_init() +{ + lcd.init(); pad.init(); + engine.init(PADDLE_WIDTH,PADDLE_HEIGHT,BALL_SIZE,BALL_SPEED); +} - lcd.backLightOn(); - lcd.printString("Beer Pong",15,2); //display the game title +void play_game() +{ + lcd.clear(); + engine.draw(lcd); + lcd.refresh(); +} + +void start() +{ + lcd.printString("Beer Pong",15,2); lcd.printString("Leeds Edition",1,3); lcd.refresh(); - pad.tone(1000.0,2.0); //plays the bong tone - - for (int i = 0; i < 10; i++) { //flash all the lights for 200 ms a pop + pad.tone(1000.0,2.0); + for (int i = 0; i < 5; i++) { pad.leds_on(); wait_ms(200); pad.leds_off(); wait_ms(200); } - pad.leds_off(); //turn off the flashing lights and the game title + pad.leds_off(); lcd.clear(); - lcd.refresh(); - - lcd.printString("Instructions:",0,0); //display the instruction screen + lcd.refresh(); + lcd.printString("Instructions:",0,0); lcd.printString("Use joystick",0,1); lcd.printString("to aim.",0,2); lcd.printString("X to fire.",0,3); lcd.printString("Press start",0,4); lcd.printString("to go.",0,5); lcd.refresh(); - lcd.clear(); - + while ( pad.start_pressed() == false) { + pad.leds_on(); } - \ No newline at end of file +}