Reham Faqehi / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Fork of fy15raf by ELEC2645 (2017/18)

Committer:
RehamFaqehi
Date:
Mon May 07 18:27:42 2018 +0000
Revision:
16:106c27d03402
Parent:
15:658f1216ee84
Rocket element has been changed to Spaceship

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RehamFaqehi 2:3fd0d3d69556 1 #ifndef GameEngine_H
RehamFaqehi 2:3fd0d3d69556 2 #define GameEngine_H
RehamFaqehi 2:3fd0d3d69556 3
RehamFaqehi 2:3fd0d3d69556 4 #include "mbed.h"
RehamFaqehi 2:3fd0d3d69556 5 #include "N5110.h"
RehamFaqehi 2:3fd0d3d69556 6 #include "Gamepad.h"
RehamFaqehi 16:106c27d03402 7 #include "Spaceship.h"
RehamFaqehi 4:8c6723798227 8 #include "Asteroid.h"
RehamFaqehi 4:8c6723798227 9
RehamFaqehi 15:658f1216ee84 10 /** GameEngine Class
RehamFaqehi 15:658f1216ee84 11 * @brief class to control the game functions
RehamFaqehi 15:658f1216ee84 12 * @author Reham Faqehi
RehamFaqehi 15:658f1216ee84 13 * @date May, 2018 */
RehamFaqehi 2:3fd0d3d69556 14
RehamFaqehi 2:3fd0d3d69556 15 class GameEngine
RehamFaqehi 2:3fd0d3d69556 16 {
RehamFaqehi 2:3fd0d3d69556 17
RehamFaqehi 2:3fd0d3d69556 18 public:
RehamFaqehi 15:658f1216ee84 19 /** Constructor */
RehamFaqehi 2:3fd0d3d69556 20 GameEngine();
RehamFaqehi 15:658f1216ee84 21
RehamFaqehi 15:658f1216ee84 22 /** Destructor */
RehamFaqehi 2:3fd0d3d69556 23 ~GameEngine();
RehamFaqehi 2:3fd0d3d69556 24
RehamFaqehi 15:658f1216ee84 25 /** Initialise the game elements:
RehamFaqehi 16:106c27d03402 26 * Spaceship, asteroids, time, and
RehamFaqehi 15:658f1216ee84 27 * game over value
RehamFaqehi 15:658f1216ee84 28 */
RehamFaqehi 2:3fd0d3d69556 29 void init();
RehamFaqehi 15:658f1216ee84 30
RehamFaqehi 15:658f1216ee84 31 /** Read the direction and magnitude
RehamFaqehi 15:658f1216ee84 32 * data from the joystick
RehamFaqehi 15:658f1216ee84 33 * @param gamepad object (Gamepad)
RehamFaqehi 15:658f1216ee84 34 */
RehamFaqehi 2:3fd0d3d69556 35 void read_input(Gamepad &g_pad);
RehamFaqehi 15:658f1216ee84 36
RehamFaqehi 15:658f1216ee84 37 /** Draw the game elements:
RehamFaqehi 16:106c27d03402 38 * Spaceship, asteroids, hearts
RehamFaqehi 15:658f1216ee84 39 * and show the time
RehamFaqehi 15:658f1216ee84 40 * @param LCD object (N5110)
RehamFaqehi 15:658f1216ee84 41 */
RehamFaqehi 2:3fd0d3d69556 42 void draw(N5110 &lcd);
RehamFaqehi 15:658f1216ee84 43
RehamFaqehi 15:658f1216ee84 44 /** Update the game elements:
RehamFaqehi 16:106c27d03402 45 * Spaceship, asteroids, the hearts
RehamFaqehi 15:658f1216ee84 46 * and the time
RehamFaqehi 15:658f1216ee84 47 * @param gamepad object (Gamepad)
RehamFaqehi 15:658f1216ee84 48 */
RehamFaqehi 12:4d7f1349d796 49 void update(Gamepad &pad);
RehamFaqehi 15:658f1216ee84 50
RehamFaqehi 15:658f1216ee84 51 /** Draw the hearts
RehamFaqehi 15:658f1216ee84 52 * @param LCD object (N5110)
RehamFaqehi 15:658f1216ee84 53 */
RehamFaqehi 12:4d7f1349d796 54 void draw_hearts(N5110 &lcd);
RehamFaqehi 15:658f1216ee84 55
RehamFaqehi 15:658f1216ee84 56 /** Check if it is the end of the game
RehamFaqehi 15:658f1216ee84 57 * @return the gameover value (int)
RehamFaqehi 15:658f1216ee84 58 */
RehamFaqehi 12:4d7f1349d796 59 int check_gameOver();
RehamFaqehi 15:658f1216ee84 60
RehamFaqehi 15:658f1216ee84 61 /** Print the current time in sec
RehamFaqehi 15:658f1216ee84 62 * @param LCD object (N5110)
RehamFaqehi 15:658f1216ee84 63 */
RehamFaqehi 12:4d7f1349d796 64 void print_time(N5110 &lcd);
RehamFaqehi 15:658f1216ee84 65
RehamFaqehi 15:658f1216ee84 66 /** Increase the time every 1 sec
RehamFaqehi 15:658f1216ee84 67 */
RehamFaqehi 12:4d7f1349d796 68 void time_increment();
RehamFaqehi 15:658f1216ee84 69
RehamFaqehi 15:658f1216ee84 70 /** Stop the time counter at
RehamFaqehi 15:658f1216ee84 71 * the end of the game
RehamFaqehi 15:658f1216ee84 72 */
RehamFaqehi 12:4d7f1349d796 73 void time_stop();
RehamFaqehi 15:658f1216ee84 74
RehamFaqehi 15:658f1216ee84 75 /** Print the total time in sec
RehamFaqehi 15:658f1216ee84 76 * at the end of the game
RehamFaqehi 15:658f1216ee84 77 * @param LCD object (N5110)
RehamFaqehi 15:658f1216ee84 78 */
RehamFaqehi 12:4d7f1349d796 79 void print_travel_time(N5110 &lcd);
RehamFaqehi 15:658f1216ee84 80
RehamFaqehi 15:658f1216ee84 81 /** Reset the time and
RehamFaqehi 15:658f1216ee84 82 * game over value to play again
RehamFaqehi 15:658f1216ee84 83 */
RehamFaqehi 14:cf4a32245152 84 void reset_gameOver();
RehamFaqehi 15:658f1216ee84 85
RehamFaqehi 12:4d7f1349d796 86
RehamFaqehi 2:3fd0d3d69556 87 private:
RehamFaqehi 2:3fd0d3d69556 88
RehamFaqehi 15:658f1216ee84 89 /** Check the collision with Asteroid 1
RehamFaqehi 15:658f1216ee84 90 * @param gamepad object (Gamepad)
RehamFaqehi 15:658f1216ee84 91 */
RehamFaqehi 12:4d7f1349d796 92 void check_collision1(Gamepad &pad);
RehamFaqehi 15:658f1216ee84 93
RehamFaqehi 15:658f1216ee84 94 /** Check the collision with Asteroid 2
RehamFaqehi 15:658f1216ee84 95 * @param gamepad object (Gamepad)
RehamFaqehi 15:658f1216ee84 96 */
RehamFaqehi 12:4d7f1349d796 97 void check_collision2(Gamepad &pad);
RehamFaqehi 15:658f1216ee84 98
RehamFaqehi 15:658f1216ee84 99 /** Check the collision with Asteroid 3
RehamFaqehi 15:658f1216ee84 100 * @param gamepad object (Gamepad)
RehamFaqehi 15:658f1216ee84 101 */
RehamFaqehi 12:4d7f1349d796 102 void check_collision3(Gamepad &pad);
RehamFaqehi 12:4d7f1349d796 103
RehamFaqehi 15:658f1216ee84 104 int gameOver;
RehamFaqehi 16:106c27d03402 105 Spaceship _Spaceship;
RehamFaqehi 8:13cef7cb872e 106 Asteroid _asteroid1;
RehamFaqehi 8:13cef7cb872e 107 Asteroid _asteroid2;
RehamFaqehi 8:13cef7cb872e 108 Asteroid _asteroid3;
RehamFaqehi 2:3fd0d3d69556 109 Direction _d;
RehamFaqehi 2:3fd0d3d69556 110 float _mag;
RehamFaqehi 12:4d7f1349d796 111 Timer time;
RehamFaqehi 12:4d7f1349d796 112 int _time;
RehamFaqehi 12:4d7f1349d796 113
RehamFaqehi 2:3fd0d3d69556 114 };
RehamFaqehi 2:3fd0d3d69556 115
RehamFaqehi 2:3fd0d3d69556 116 #endif