Final Version of GameProject

Dependencies:   GameEngine Gamepad HealthBar Joystick N5110 Player Projectile Target mbed

Committer:
ll14c4p
Date:
Fri Apr 28 15:29:46 2017 +0000
Revision:
6:464ebc3f10fa
Parent:
5:33e76ad2cf2b
Child:
10:68384c797cfe
+Get Pos functional

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ll14c4p 2:7ffa02ae8b8d 1 ///////// pre-processor directives ////////
ll14c4p 0:3bc1df655a9c 2 #include "mbed.h"
ll14c4p 0:3bc1df655a9c 3 #include "Gamepad.h"
ll14c4p 0:3bc1df655a9c 4 #include "N5110.h"
ll14c4p 2:7ffa02ae8b8d 5 #include "GameEngine.h"
ll14c4p 0:3bc1df655a9c 6
ll14c4p 2:7ffa02ae8b8d 7 /////////////// structs /////////////////
ll14c4p 2:7ffa02ae8b8d 8 struct UserInput {
ll14c4p 2:7ffa02ae8b8d 9 Direction d;
ll14c4p 2:7ffa02ae8b8d 10 float mag;
ll14c4p 2:7ffa02ae8b8d 11 };
ll14c4p 2:7ffa02ae8b8d 12 /////////////// objects ///////////////
ll14c4p 2:7ffa02ae8b8d 13 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
ll14c4p 2:7ffa02ae8b8d 14 Gamepad pad;
ll14c4p 2:7ffa02ae8b8d 15 GameEngine game;
ll14c4p 2:7ffa02ae8b8d 16 ///////////// prototypes ///////////////
ll14c4p 2:7ffa02ae8b8d 17 void init();
ll14c4p 2:7ffa02ae8b8d 18 void update_game(UserInput input);
ll14c4p 2:7ffa02ae8b8d 19 void render();
ll14c4p 2:7ffa02ae8b8d 20 void welcome();
ll14c4p 2:7ffa02ae8b8d 21 ///////////// functions ////////////////
ll14c4p 2:7ffa02ae8b8d 22 int main()
ll14c4p 2:7ffa02ae8b8d 23 {
ll14c4p 4:e5c5ff1282d8 24 int fps = 10; // frames per second
ll14c4p 0:3bc1df655a9c 25
ll14c4p 2:7ffa02ae8b8d 26 init();
ll14c4p 2:7ffa02ae8b8d 27 welcome();
ll14c4p 0:3bc1df655a9c 28
ll14c4p 2:7ffa02ae8b8d 29 render(); // draw initial frame
ll14c4p 2:7ffa02ae8b8d 30 wait(1.0f/fps);
ll14c4p 2:7ffa02ae8b8d 31
ll14c4p 2:7ffa02ae8b8d 32 // game loop - read input, update the game state and render the display
ll14c4p 2:7ffa02ae8b8d 33 while (1) {
ll14c4p 2:7ffa02ae8b8d 34 game.read_input(pad);
ll14c4p 2:7ffa02ae8b8d 35 game.update(pad);
ll14c4p 2:7ffa02ae8b8d 36 render();
ll14c4p 2:7ffa02ae8b8d 37 wait(1.0f/fps);
ll14c4p 2:7ffa02ae8b8d 38 }
ll14c4p 2:7ffa02ae8b8d 39 }
ll14c4p 2:7ffa02ae8b8d 40
ll14c4p 2:7ffa02ae8b8d 41 void init()
ll14c4p 2:7ffa02ae8b8d 42 {
ll14c4p 2:7ffa02ae8b8d 43 // need to initialise LCD and Gamepad
ll14c4p 2:7ffa02ae8b8d 44 lcd.init();
ll14c4p 2:7ffa02ae8b8d 45 pad.init();
ll14c4p 2:7ffa02ae8b8d 46
ll14c4p 2:7ffa02ae8b8d 47 // initialise the game
ll14c4p 2:7ffa02ae8b8d 48 game.init();
ll14c4p 2:7ffa02ae8b8d 49
ll14c4p 2:7ffa02ae8b8d 50 }
ll14c4p 2:7ffa02ae8b8d 51
ll14c4p 2:7ffa02ae8b8d 52 void render()
ll14c4p 2:7ffa02ae8b8d 53 {
ll14c4p 2:7ffa02ae8b8d 54 // clear screen, re-draw and refresh
ll14c4p 2:7ffa02ae8b8d 55 lcd.clear();
ll14c4p 2:7ffa02ae8b8d 56 game.draw(lcd);
ll14c4p 6:464ebc3f10fa 57 game.get_pos();
ll14c4p 2:7ffa02ae8b8d 58 lcd.refresh();
ll14c4p 2:7ffa02ae8b8d 59 }
ll14c4p 2:7ffa02ae8b8d 60
ll14c4p 2:7ffa02ae8b8d 61 void welcome() {
ll14c4p 0:3bc1df655a9c 62
ll14c4p 5:33e76ad2cf2b 63 lcd.printString(" Game ",0,1);
ll14c4p 5:33e76ad2cf2b 64 lcd.printString(" Press Start ",0,4);
ll14c4p 2:7ffa02ae8b8d 65 lcd.refresh();
ll14c4p 2:7ffa02ae8b8d 66
ll14c4p 2:7ffa02ae8b8d 67 // wait flashing LEDs until start button is pressed
ll14c4p 2:7ffa02ae8b8d 68 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
ll14c4p 2:7ffa02ae8b8d 69 pad.leds_on();
ll14c4p 2:7ffa02ae8b8d 70 wait(0.1);
ll14c4p 2:7ffa02ae8b8d 71 pad.leds_off();
ll14c4p 2:7ffa02ae8b8d 72 wait(0.1);
ll14c4p 2:7ffa02ae8b8d 73 }
ll14c4p 2:7ffa02ae8b8d 74
ll14c4p 2:7ffa02ae8b8d 75 }