Final Submission. I have read and agreed with Statement of Academic Integrity.
Dependencies: mbed Gamepad FLAPPY_BIRD
Diff: main.cpp
- Revision:
- 0:bfd3317d7773
diff -r 000000000000 -r bfd3317d7773 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun May 05 14:57:07 2019 +0000 @@ -0,0 +1,111 @@ +#include "Bird.h" + + + + +// Objects +N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); +Gamepad pad; +Bird bird; + +// Prototypes +void init(); +void welcome(); +void mode1(); +void start(int fps); +void play(int fps); +void failure(); + + + +int main() +{ + // set the frame per second + int fps = 5; + // first need to initialise the display + init(); + // these are default settings so not strictly needed + lcd.normalMode(); // normal colour mode + lcd.setBrightness(0.6); // put LED backlight on 60% + // change set contrast in range 0.0 to 1.0 + // 0.5 appears to be a good starting point + lcd.setContrast(0.5); + lcd.clear(); + + // welcome screen that waiting the player to start + welcome(); + // Mode choosing, to determine the barrier speed + mode1(); + + // game start, draw the bird and the barrier + start(fps); + + while(1){ + // playing procedure + play(fps); + + // failure screen, to ask user to play again + failure(); + + } + + +} + +void init() +{ + // initialise lcd and gamepad + lcd.init(); + pad.init(); + bird.init(); +} + +void welcome() +{ + // print welcome screen + bird.welcome(lcd); + lcd.refresh(); + + // move to game while start button is pressed + while ( pad.check_event(Gamepad::START_PRESSED) == false) { + pad.leds_on(); + wait(0.1); + pad.leds_off(); + wait(0.1); + } +} + +void mode1() +{ + // choosing difficulty + while (pad.check_event(Gamepad::A_PRESSED) == false) { + bird.mode(lcd, pad); + } +} + +void start(int fps) +{ + // draw the first bird and barrier, + // and giving the last 3 seconds to prepare + bird.ready(lcd); + +} + +void play(int fps) +{ + lcd.clear(); + if(pad.check_event(Gamepad::A_PRESSED)){ + bird.flyup(lcd); + } + else {bird.flydown(lcd);} + bird.barrier(lcd); + bird.score(lcd); + bird.pause(lcd,pad); + lcd.refresh(); + wait(1.0/fps); +} + +void failure() +{ + bird.fail(lcd, pad); +} \ No newline at end of file