ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Committer:
RehamFaqehi
Date:
Tue Apr 24 15:29:17 2018 +0000
Revision:
9:e70179ff61c5
Parent:
3:489437d4ebd7
Child:
10:3af708f38a42
'Game over' screen added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RehamFaqehi 0:f3d96a1a3177 1 /*
RehamFaqehi 0:f3d96a1a3177 2 ELEC2645 Embedded Systems Project
RehamFaqehi 2:3fd0d3d69556 3 School of Electronic & Electrical Engineering
RehamFaqehi 2:3fd0d3d69556 4 University of Leeds
RehamFaqehi 0:f3d96a1a3177 5 Name: Reham Faqehi
RehamFaqehi 0:f3d96a1a3177 6 Username: Fy15raf
RehamFaqehi 0:f3d96a1a3177 7 Student ID Number: 200982112
RehamFaqehi 2:3fd0d3d69556 8 Date: 03/05/2018
RehamFaqehi 2:3fd0d3d69556 9 */
RehamFaqehi 2:3fd0d3d69556 10
RehamFaqehi 0:f3d96a1a3177 11
RehamFaqehi 1:386790f5f9bf 12 ///////// pre-processor directives ////////
RehamFaqehi 1:386790f5f9bf 13 #include "mbed.h"
RehamFaqehi 1:386790f5f9bf 14 #include "Gamepad.h"
RehamFaqehi 1:386790f5f9bf 15 #include "N5110.h"
RehamFaqehi 2:3fd0d3d69556 16 #include "GameEngine.h"
RehamFaqehi 1:386790f5f9bf 17 /////////////// objects ///////////////
RehamFaqehi 1:386790f5f9bf 18 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
RehamFaqehi 1:386790f5f9bf 19 Gamepad g_pad;
RehamFaqehi 2:3fd0d3d69556 20 GameEngine game;
RehamFaqehi 1:386790f5f9bf 21
RehamFaqehi 1:386790f5f9bf 22 ///////////// prototypes ///////////////
RehamFaqehi 1:386790f5f9bf 23 void init();
RehamFaqehi 2:3fd0d3d69556 24 void render();
RehamFaqehi 1:386790f5f9bf 25 void welcome();
RehamFaqehi 9:e70179ff61c5 26 void gameOver();
RehamFaqehi 2:3fd0d3d69556 27
RehamFaqehi 2:3fd0d3d69556 28 ///////////// functions ////////////////
RehamFaqehi 2:3fd0d3d69556 29 int main()
RehamFaqehi 1:386790f5f9bf 30 {
RehamFaqehi 2:3fd0d3d69556 31 int fps = 8; // frames per second
RehamFaqehi 1:386790f5f9bf 32
RehamFaqehi 2:3fd0d3d69556 33 init(); // initialise
RehamFaqehi 1:386790f5f9bf 34 welcome(); // display welcome screen till the user press start to start the game
RehamFaqehi 2:3fd0d3d69556 35
RehamFaqehi 2:3fd0d3d69556 36 render(); // drawing the initial frame
RehamFaqehi 2:3fd0d3d69556 37 wait(1.0f/fps); // wait for one frame period
RehamFaqehi 9:e70179ff61c5 38
RehamFaqehi 2:3fd0d3d69556 39 // game loop
RehamFaqehi 9:e70179ff61c5 40 while (game.get_gameOver1()!=1) {
RehamFaqehi 2:3fd0d3d69556 41
RehamFaqehi 3:489437d4ebd7 42 game.read_input(g_pad);
RehamFaqehi 3:489437d4ebd7 43 game.update(g_pad,lcd);
RehamFaqehi 2:3fd0d3d69556 44 render();
RehamFaqehi 2:3fd0d3d69556 45 wait(1.0f/fps);
RehamFaqehi 2:3fd0d3d69556 46 }
RehamFaqehi 9:e70179ff61c5 47 lcd.clear();
RehamFaqehi 9:e70179ff61c5 48 gameOver();
RehamFaqehi 2:3fd0d3d69556 49
RehamFaqehi 1:386790f5f9bf 50 }
RehamFaqehi 1:386790f5f9bf 51
RehamFaqehi 1:386790f5f9bf 52 // initialies all classes and libraries
RehamFaqehi 1:386790f5f9bf 53 void init()
RehamFaqehi 1:386790f5f9bf 54 {
RehamFaqehi 1:386790f5f9bf 55 //initialise LCD and Gamepad first
RehamFaqehi 1:386790f5f9bf 56 lcd.init();
RehamFaqehi 1:386790f5f9bf 57 lcd.setContrast(0.5);
RehamFaqehi 1:386790f5f9bf 58 g_pad.init();
RehamFaqehi 2:3fd0d3d69556 59 // initialise the game
RehamFaqehi 2:3fd0d3d69556 60 game.init();
RehamFaqehi 2:3fd0d3d69556 61 }
RehamFaqehi 2:3fd0d3d69556 62
RehamFaqehi 2:3fd0d3d69556 63 //function to draw the frames on the LCD
RehamFaqehi 2:3fd0d3d69556 64 void render()
RehamFaqehi 2:3fd0d3d69556 65 {
RehamFaqehi 2:3fd0d3d69556 66 // first clear screen, re-draw and then refresh the LCD
RehamFaqehi 2:3fd0d3d69556 67 lcd.clear();
RehamFaqehi 2:3fd0d3d69556 68 game.draw(lcd);
RehamFaqehi 2:3fd0d3d69556 69 lcd.refresh();
RehamFaqehi 1:386790f5f9bf 70 }
RehamFaqehi 1:386790f5f9bf 71
RehamFaqehi 1:386790f5f9bf 72 // simple welcoming screen before starting the game
RehamFaqehi 2:3fd0d3d69556 73 void welcome()
RehamFaqehi 2:3fd0d3d69556 74 {
RehamFaqehi 2:3fd0d3d69556 75
RehamFaqehi 2:3fd0d3d69556 76 lcd.printString(" Rocket! ",0,1);
RehamFaqehi 1:386790f5f9bf 77 lcd.printString(" Press Start ",0,4);
RehamFaqehi 1:386790f5f9bf 78 lcd.refresh();
RehamFaqehi 2:3fd0d3d69556 79
RehamFaqehi 2:3fd0d3d69556 80 //flashing LEDs until start button is pressed
RehamFaqehi 1:386790f5f9bf 81 while ( g_pad.check_event(Gamepad::START_PRESSED) == false) {
RehamFaqehi 1:386790f5f9bf 82 g_pad.leds_on();
RehamFaqehi 1:386790f5f9bf 83 wait(0.1);
RehamFaqehi 1:386790f5f9bf 84 g_pad.leds_off();
RehamFaqehi 1:386790f5f9bf 85 wait(0.1);
RehamFaqehi 2:3fd0d3d69556 86 }
RehamFaqehi 1:386790f5f9bf 87 }
RehamFaqehi 1:386790f5f9bf 88
RehamFaqehi 1:386790f5f9bf 89
RehamFaqehi 9:e70179ff61c5 90 void gameOver() {
RehamFaqehi 9:e70179ff61c5 91
RehamFaqehi 9:e70179ff61c5 92 lcd.printString(" Game Over!! ",0,1);
RehamFaqehi 9:e70179ff61c5 93 lcd.printString(" Try again ",0,3);
RehamFaqehi 9:e70179ff61c5 94 lcd.printString(" 'reset' ",0,5);
RehamFaqehi 9:e70179ff61c5 95 lcd.refresh();
RehamFaqehi 9:e70179ff61c5 96
RehamFaqehi 9:e70179ff61c5 97 }
RehamFaqehi 9:e70179ff61c5 98
RehamFaqehi 9:e70179ff61c5 99
RehamFaqehi 9:e70179ff61c5 100
RehamFaqehi 9:e70179ff61c5 101