Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of fy15raf by
GameEngine/GameEngine.h@16:106c27d03402, 2018-05-07 (annotated)
- 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?
User | Revision | Line number | New 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 |