ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Committer:
RehamFaqehi
Date:
Wed Apr 18 18:05:14 2018 +0000
Revision:
3:489437d4ebd7
Parent:
2:3fd0d3d69556
Child:
9:e70179ff61c5
Rocket now is moving with the joystick

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 2:3fd0d3d69556 26
RehamFaqehi 2:3fd0d3d69556 27 ///////////// functions ////////////////
RehamFaqehi 2:3fd0d3d69556 28 int main()
RehamFaqehi 1:386790f5f9bf 29 {
RehamFaqehi 2:3fd0d3d69556 30 int fps = 8; // frames per second
RehamFaqehi 1:386790f5f9bf 31
RehamFaqehi 2:3fd0d3d69556 32 init(); // initialise
RehamFaqehi 1:386790f5f9bf 33 welcome(); // display welcome screen till the user press start to start the game
RehamFaqehi 2:3fd0d3d69556 34
RehamFaqehi 2:3fd0d3d69556 35 render(); // drawing the initial frame
RehamFaqehi 2:3fd0d3d69556 36 wait(1.0f/fps); // wait for one frame period
RehamFaqehi 2:3fd0d3d69556 37
RehamFaqehi 2:3fd0d3d69556 38 // game loop
RehamFaqehi 1:386790f5f9bf 39 while (1) {
RehamFaqehi 2:3fd0d3d69556 40
RehamFaqehi 3:489437d4ebd7 41 game.read_input(g_pad);
RehamFaqehi 3:489437d4ebd7 42 game.update(g_pad,lcd);
RehamFaqehi 2:3fd0d3d69556 43 render();
RehamFaqehi 2:3fd0d3d69556 44 wait(1.0f/fps);
RehamFaqehi 2:3fd0d3d69556 45 }
RehamFaqehi 2:3fd0d3d69556 46
RehamFaqehi 1:386790f5f9bf 47 }
RehamFaqehi 1:386790f5f9bf 48
RehamFaqehi 1:386790f5f9bf 49 // initialies all classes and libraries
RehamFaqehi 1:386790f5f9bf 50 void init()
RehamFaqehi 1:386790f5f9bf 51 {
RehamFaqehi 1:386790f5f9bf 52 //initialise LCD and Gamepad first
RehamFaqehi 1:386790f5f9bf 53 lcd.init();
RehamFaqehi 1:386790f5f9bf 54 lcd.setContrast(0.5);
RehamFaqehi 1:386790f5f9bf 55 g_pad.init();
RehamFaqehi 2:3fd0d3d69556 56 // initialise the game
RehamFaqehi 2:3fd0d3d69556 57 game.init();
RehamFaqehi 2:3fd0d3d69556 58 }
RehamFaqehi 2:3fd0d3d69556 59
RehamFaqehi 2:3fd0d3d69556 60 //function to draw the frames on the LCD
RehamFaqehi 2:3fd0d3d69556 61 void render()
RehamFaqehi 2:3fd0d3d69556 62 {
RehamFaqehi 2:3fd0d3d69556 63 // first clear screen, re-draw and then refresh the LCD
RehamFaqehi 2:3fd0d3d69556 64 lcd.clear();
RehamFaqehi 2:3fd0d3d69556 65 game.draw(lcd);
RehamFaqehi 2:3fd0d3d69556 66 lcd.refresh();
RehamFaqehi 1:386790f5f9bf 67 }
RehamFaqehi 1:386790f5f9bf 68
RehamFaqehi 1:386790f5f9bf 69 // simple welcoming screen before starting the game
RehamFaqehi 2:3fd0d3d69556 70 void welcome()
RehamFaqehi 2:3fd0d3d69556 71 {
RehamFaqehi 2:3fd0d3d69556 72
RehamFaqehi 2:3fd0d3d69556 73 lcd.printString(" Rocket! ",0,1);
RehamFaqehi 1:386790f5f9bf 74 lcd.printString(" Press Start ",0,4);
RehamFaqehi 1:386790f5f9bf 75 lcd.refresh();
RehamFaqehi 2:3fd0d3d69556 76
RehamFaqehi 2:3fd0d3d69556 77 //flashing LEDs until start button is pressed
RehamFaqehi 1:386790f5f9bf 78 while ( g_pad.check_event(Gamepad::START_PRESSED) == false) {
RehamFaqehi 1:386790f5f9bf 79 g_pad.leds_on();
RehamFaqehi 1:386790f5f9bf 80 wait(0.1);
RehamFaqehi 1:386790f5f9bf 81 g_pad.leds_off();
RehamFaqehi 1:386790f5f9bf 82 wait(0.1);
RehamFaqehi 2:3fd0d3d69556 83 }
RehamFaqehi 1:386790f5f9bf 84 }
RehamFaqehi 1:386790f5f9bf 85
RehamFaqehi 1:386790f5f9bf 86