Nemesis game, engine
Engine.h@14:94011e4a0624, 2017-05-04 (annotated)
- Committer:
- musallambseiso
- Date:
- Thu May 04 11:29:47 2017 +0000
- Revision:
- 14:94011e4a0624
- Parent:
- 13:f3560c403397
Final version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
musallambseiso | 4:e84724dcad49 | 1 | #ifndef ENGINE_H |
musallambseiso | 4:e84724dcad49 | 2 | #define ENGINE_H |
musallambseiso | 4:e84724dcad49 | 3 | |
musallambseiso | 4:e84724dcad49 | 4 | #include "mbed.h" |
musallambseiso | 4:e84724dcad49 | 5 | #include "N5110.h" |
musallambseiso | 4:e84724dcad49 | 6 | #include "Gamepad.h" |
musallambseiso | 12:d68c757d829a | 7 | #include "Enemy1.h" |
musallambseiso | 12:d68c757d829a | 8 | #include "Enemy2.h" |
musallambseiso | 12:d68c757d829a | 9 | #include "Enemy3.h" |
musallambseiso | 12:d68c757d829a | 10 | #include "Enemy4.h" |
musallambseiso | 12:d68c757d829a | 11 | #include "Enemy5.h" |
musallambseiso | 12:d68c757d829a | 12 | #include "Enemy6.h" |
musallambseiso | 4:e84724dcad49 | 13 | #include "Friendly.h" |
musallambseiso | 12:d68c757d829a | 14 | #include "Rocket.h" |
musallambseiso | 7:4c19433600c8 | 15 | #include "Stats.h" |
musallambseiso | 4:e84724dcad49 | 16 | |
musallambseiso | 13:f3560c403397 | 17 | /** Engine Class |
musallambseiso | 13:f3560c403397 | 18 | @brief Engine for interfacing with the Nemesis game. Includes drawing, checking, game state-changing methods, |
musallambseiso | 13:f3560c403397 | 19 | @brief for Friendly and Enemy ships, Weapons, and Stats bar. |
musallambseiso | 13:f3560c403397 | 20 | @brief Incorporates N5110.h and Gamepad.h files by Craig A. Evans. |
musallambseiso | 13:f3560c403397 | 21 | |
musallambseiso | 13:f3560c403397 | 22 | @brief Revision 1.0 |
musallambseiso | 13:f3560c403397 | 23 | |
musallambseiso | 13:f3560c403397 | 24 | @author Musallam M. M. Bseiso |
musallambseiso | 13:f3560c403397 | 25 | @date 3rd May 2017 |
musallambseiso | 13:f3560c403397 | 26 | */ |
musallambseiso | 13:f3560c403397 | 27 | |
musallambseiso | 4:e84724dcad49 | 28 | class Engine |
musallambseiso | 4:e84724dcad49 | 29 | { |
musallambseiso | 4:e84724dcad49 | 30 | |
musallambseiso | 4:e84724dcad49 | 31 | public: |
musallambseiso | 12:d68c757d829a | 32 | |
musallambseiso | 12:d68c757d829a | 33 | /// Constructor and destructor: |
musallambseiso | 4:e84724dcad49 | 34 | Engine(); |
musallambseiso | 4:e84724dcad49 | 35 | ~Engine(); |
musallambseiso | 7:4c19433600c8 | 36 | |
musallambseiso | 12:d68c757d829a | 37 | |
musallambseiso | 12:d68c757d829a | 38 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 39 | //////// PUBLIC VARIABLES |
musallambseiso | 12:d68c757d829a | 40 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 41 | |
musallambseiso | 12:d68c757d829a | 42 | |
musallambseiso | 12:d68c757d829a | 43 | /// Integer variable that stores the collisions the friendly ship has with the enemy ships: |
musallambseiso | 8:1c0bc1a08153 | 44 | int collisions; |
musallambseiso | 12:d68c757d829a | 45 | |
musallambseiso | 12:d68c757d829a | 46 | /// Integer variable that stores the number of the wave the player is currently in (or the number of waves survived): |
musallambseiso | 9:0efc8d7cdcf7 | 47 | int wave_counter; |
musallambseiso | 12:d68c757d829a | 48 | |
musallambseiso | 12:d68c757d829a | 49 | /// Boolean variable that stores if the player has a star available or not: |
musallambseiso | 12:d68c757d829a | 50 | bool star; |
musallambseiso | 12:d68c757d829a | 51 | |
musallambseiso | 12:d68c757d829a | 52 | /// Integer variable that stores the number of rockets the player has available: |
musallambseiso | 11:10c01766f774 | 53 | int ammo; |
musallambseiso | 12:d68c757d829a | 54 | |
musallambseiso | 12:d68c757d829a | 55 | /// Integer variable that stores the number of pauses the player has available: |
musallambseiso | 12:d68c757d829a | 56 | int pauses; |
musallambseiso | 12:d68c757d829a | 57 | |
musallambseiso | 12:d68c757d829a | 58 | /// Boolean variable that stores if a rocket has been shot or not: |
musallambseiso | 12:d68c757d829a | 59 | bool rocket_shot_trigger; |
musallambseiso | 12:d68c757d829a | 60 | |
musallambseiso | 13:f3560c403397 | 61 | /// Boolean variable that stores if health has been regenerated or not: |
musallambseiso | 13:f3560c403397 | 62 | bool health_regen_trigger; |
musallambseiso | 13:f3560c403397 | 63 | |
musallambseiso | 12:d68c757d829a | 64 | /// Boolean variable that stores if a rocket has been regenerated or not: |
musallambseiso | 12:d68c757d829a | 65 | bool rocket_regen_trigger; |
musallambseiso | 12:d68c757d829a | 66 | |
musallambseiso | 12:d68c757d829a | 67 | /// Boolean variable that stores if a star has been regenerated or not: |
musallambseiso | 12:d68c757d829a | 68 | bool star_regen_trigger; |
musallambseiso | 12:d68c757d829a | 69 | |
musallambseiso | 12:d68c757d829a | 70 | |
musallambseiso | 12:d68c757d829a | 71 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 72 | //////// PUBLIC METHODS |
musallambseiso | 12:d68c757d829a | 73 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 74 | |
musallambseiso | 12:d68c757d829a | 75 | |
musallambseiso | 12:d68c757d829a | 76 | /** Initialize Ships |
musallambseiso | 12:d68c757d829a | 77 | * |
musallambseiso | 12:d68c757d829a | 78 | * Initializes friendly and enemy ships' velocity (enemies) and x & y positions (both). |
musallambseiso | 12:d68c757d829a | 79 | * @param speed - velocity of ship |
musallambseiso | 13:f3560c403397 | 80 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 81 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 82 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 83 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 84 | */ |
musallambseiso | 13:f3560c403397 | 85 | void init(int speed, N5110 &lcd, Gamepad &pad, int _collisions, int _wave_counter, int _ammo, bool _star, int _pauses); |
musallambseiso | 12:d68c757d829a | 86 | |
musallambseiso | 12:d68c757d829a | 87 | |
musallambseiso | 12:d68c757d829a | 88 | /** Read Input |
musallambseiso | 12:d68c757d829a | 89 | * |
musallambseiso | 12:d68c757d829a | 90 | * Reads direction (_d) and magnitude (_mag) from gamepad analog stick. |
musallambseiso | 13:f3560c403397 | 91 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 92 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 93 | */ |
musallambseiso | 4:e84724dcad49 | 94 | void read_input(Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 95 | |
musallambseiso | 12:d68c757d829a | 96 | |
musallambseiso | 12:d68c757d829a | 97 | /** Draw Elements |
musallambseiso | 12:d68c757d829a | 98 | * |
musallambseiso | 12:d68c757d829a | 99 | * Draws grid, health, weapons, wave counter, and friendly and enemy ships onto the LCD |
musallambseiso | 13:f3560c403397 | 100 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 101 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 12:d68c757d829a | 102 | */ |
musallambseiso | 12:d68c757d829a | 103 | void draw_all(N5110 &lcd); |
musallambseiso | 12:d68c757d829a | 104 | |
musallambseiso | 12:d68c757d829a | 105 | |
musallambseiso | 12:d68c757d829a | 106 | /** Check All |
musallambseiso | 12:d68c757d829a | 107 | * |
musallambseiso | 12:d68c757d829a | 108 | * Method that includes all other checking methods |
musallambseiso | 13:f3560c403397 | 109 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 110 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 111 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 112 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 113 | */ |
musallambseiso | 12:d68c757d829a | 114 | void check_all(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 115 | |
musallambseiso | 12:d68c757d829a | 116 | |
musallambseiso | 12:d68c757d829a | 117 | /** Update All |
musallambseiso | 12:d68c757d829a | 118 | * |
musallambseiso | 12:d68c757d829a | 119 | * Updates friendly and enemy ship parameters (position), as well as making sure the friendly ship doesn't go off screen |
musallambseiso | 12:d68c757d829a | 120 | * by limiting its x and y positions. |
musallambseiso | 13:f3560c403397 | 121 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 122 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 123 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 124 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 125 | */ |
musallambseiso | 12:d68c757d829a | 126 | void update_all(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 127 | |
musallambseiso | 12:d68c757d829a | 128 | |
musallambseiso | 12:d68c757d829a | 129 | /** Shoot Rocket |
musallambseiso | 12:d68c757d829a | 130 | * |
musallambseiso | 12:d68c757d829a | 131 | * Triggers a rocket to be shot from the friendly ship, destroying enemy ship opposite, at the press of a button (B). |
musallambseiso | 12:d68c757d829a | 132 | * Checks if rockets ("ammo" variable) available, draws rocket onto screen, triggers "check_enemy_death" method, subtracts 1 from |
musallambseiso | 12:d68c757d829a | 133 | * "ammo", and outputs a sound. First of two weapon types. |
musallambseiso | 13:f3560c403397 | 134 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 135 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 136 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 137 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 138 | */ |
musallambseiso | 12:d68c757d829a | 139 | void shoot_rocket(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 140 | |
musallambseiso | 12:d68c757d829a | 141 | |
musallambseiso | 12:d68c757d829a | 142 | /** Shoot Star |
musallambseiso | 12:d68c757d829a | 143 | * |
musallambseiso | 12:d68c757d829a | 144 | * Triggers a star to be shot from the friendly ship, destroying all enemy ships, at the press of a button (A). |
musallambseiso | 12:d68c757d829a | 145 | * Checks if star ("star" variable) available, sets "star" to false, and outputs a sound. Second of two weapon types. |
musallambseiso | 13:f3560c403397 | 146 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 147 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 148 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 149 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 150 | */ |
musallambseiso | 12:d68c757d829a | 151 | void shoot_star(N5110 &lcd, Gamepad &pad); |
musallambseiso | 4:e84724dcad49 | 152 | |
musallambseiso | 4:e84724dcad49 | 153 | private: |
musallambseiso | 9:0efc8d7cdcf7 | 154 | |
musallambseiso | 12:d68c757d829a | 155 | |
musallambseiso | 12:d68c757d829a | 156 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 157 | //////// PRIVATE VARIABLES |
musallambseiso | 12:d68c757d829a | 158 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 159 | |
musallambseiso | 12:d68c757d829a | 160 | |
musallambseiso | 12:d68c757d829a | 161 | /// Integer variable that stores the speed of the enemy ships: |
musallambseiso | 12:d68c757d829a | 162 | int _speed; |
musallambseiso | 12:d68c757d829a | 163 | |
musallambseiso | 12:d68c757d829a | 164 | /// Variable that stores the direction of the analog stick: |
musallambseiso | 12:d68c757d829a | 165 | Direction _d; |
musallambseiso | 12:d68c757d829a | 166 | |
musallambseiso | 12:d68c757d829a | 167 | /// Floating point variable that stores the magnitude of the analog stick movement: |
musallambseiso | 12:d68c757d829a | 168 | float _mag; |
musallambseiso | 12:d68c757d829a | 169 | |
musallambseiso | 12:d68c757d829a | 170 | /// Objects created: |
musallambseiso | 12:d68c757d829a | 171 | Friendly _friendly; |
musallambseiso | 12:d68c757d829a | 172 | Enemy1 _enemy1; |
musallambseiso | 12:d68c757d829a | 173 | Enemy2 _enemy2; |
musallambseiso | 12:d68c757d829a | 174 | Enemy3 _enemy3; |
musallambseiso | 12:d68c757d829a | 175 | Enemy4 _enemy4; |
musallambseiso | 12:d68c757d829a | 176 | Enemy5 _enemy5; |
musallambseiso | 12:d68c757d829a | 177 | Enemy6 _enemy6; |
musallambseiso | 12:d68c757d829a | 178 | Rocket _rocket; |
musallambseiso | 12:d68c757d829a | 179 | Stats _stats; |
musallambseiso | 12:d68c757d829a | 180 | |
musallambseiso | 12:d68c757d829a | 181 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 182 | //////// PRIVATE METHODS |
musallambseiso | 12:d68c757d829a | 183 | //////////////////////////////// |
musallambseiso | 12:d68c757d829a | 184 | |
musallambseiso | 12:d68c757d829a | 185 | |
musallambseiso | 13:f3560c403397 | 186 | /** Check Enemy Pass (high) |
musallambseiso | 12:d68c757d829a | 187 | * |
musallambseiso | 13:f3560c403397 | 188 | * Reinitializes enemy ships that have passed off-screen (x < 0) to their starting position. As Enemy1 passes, |
musallambseiso | 13:f3560c403397 | 189 | * increments wave counter (adds 1 to the "wave_counter" variable), then resets rocket and star regeneration |
musallambseiso | 13:f3560c403397 | 190 | * trigger to false (sets "rocket_regen_trigger" and "star_regen_trigger" to false) to allow further regeneration |
musallambseiso | 13:f3560c403397 | 191 | * at next wave. This method only deals with reinitializing the upper 3 enemies (Enemy1, Enemy2, and Enemy3). |
musallambseiso | 13:f3560c403397 | 192 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 193 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 194 | */ |
musallambseiso | 13:f3560c403397 | 195 | void check_enemy_pass_high(Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 196 | |
musallambseiso | 12:d68c757d829a | 197 | |
musallambseiso | 13:f3560c403397 | 198 | /** Check Enemy Pass (low) |
musallambseiso | 13:f3560c403397 | 199 | * |
musallambseiso | 13:f3560c403397 | 200 | * Reinitializes enemy ships that have passed off-screen (x < 0) to their starting position. This method only deals |
musallambseiso | 13:f3560c403397 | 201 | * with reinitializing the lower 3 enemies (Enemy4, Enemy5, and Enemy6). |
musallambseiso | 13:f3560c403397 | 202 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 203 | * @param pad - pointer to gamepad library |
musallambseiso | 13:f3560c403397 | 204 | */ |
musallambseiso | 13:f3560c403397 | 205 | void check_enemy_pass_low(Gamepad &pad); |
musallambseiso | 13:f3560c403397 | 206 | |
musallambseiso | 13:f3560c403397 | 207 | |
musallambseiso | 13:f3560c403397 | 208 | /** Check Enemy Death (high) |
musallambseiso | 12:d68c757d829a | 209 | * |
musallambseiso | 13:f3560c403397 | 210 | * Reinitializes enemy ships that have been shot by a rocket to their starting position. This method only deals with |
musallambseiso | 13:f3560c403397 | 211 | * reinitializing the upper 3 enemies (Enemy1, Enemy2, and Enemy3). |
musallambseiso | 13:f3560c403397 | 212 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 213 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 214 | */ |
musallambseiso | 13:f3560c403397 | 215 | void check_enemy_death_high(Gamepad &pad); |
musallambseiso | 13:f3560c403397 | 216 | |
musallambseiso | 13:f3560c403397 | 217 | |
musallambseiso | 13:f3560c403397 | 218 | /** Check Enemy Death (low) |
musallambseiso | 13:f3560c403397 | 219 | * |
musallambseiso | 13:f3560c403397 | 220 | * Reinitializes enemy ships that have been shot by a rocket to their starting position. This method only deals with |
musallambseiso | 13:f3560c403397 | 221 | * reinitializing the lower 3 enemies (Enemy4, Enemy5, and Enemy6). |
musallambseiso | 13:f3560c403397 | 222 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 223 | * @param pad - pointer to gamepad library |
musallambseiso | 13:f3560c403397 | 224 | */ |
musallambseiso | 13:f3560c403397 | 225 | void check_enemy_death_low(Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 226 | |
musallambseiso | 12:d68c757d829a | 227 | |
musallambseiso | 12:d68c757d829a | 228 | /** Check Friendly Death |
musallambseiso | 12:d68c757d829a | 229 | * |
musallambseiso | 12:d68c757d829a | 230 | * Registers friendly collisions with an enemy ship (adds 1 to "collisions" variable). |
musallambseiso | 12:d68c757d829a | 231 | */ |
musallambseiso | 12:d68c757d829a | 232 | void check_friendly_death(Gamepad &pad, Vector2D ship_pos); |
musallambseiso | 12:d68c757d829a | 233 | |
musallambseiso | 12:d68c757d829a | 234 | |
musallambseiso | 13:f3560c403397 | 235 | /** Check Friendly Death All |
musallambseiso | 12:d68c757d829a | 236 | * |
musallambseiso | 12:d68c757d829a | 237 | * Method that includes "check_friendly_death" method for all 6 enemy ships. |
musallambseiso | 13:f3560c403397 | 238 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 239 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 240 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 241 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 242 | */ |
musallambseiso | 13:f3560c403397 | 243 | void check_friendly_death_all(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 244 | |
musallambseiso | 4:e84724dcad49 | 245 | |
musallambseiso | 13:f3560c403397 | 246 | /** Check Health Replenish |
musallambseiso | 13:f3560c403397 | 247 | * |
musallambseiso | 13:f3560c403397 | 248 | * Regenerates health (subtracts 1 to "collisions" variable) at certain waves, if "health_regen_trigger" is false, and |
musallambseiso | 13:f3560c403397 | 249 | * the player has less than full health already (only executes if "collisions" is non-zero). |
musallambseiso | 13:f3560c403397 | 250 | * Then sets "health_regen_trigger" to true to prevent excessive health regeneration. |
musallambseiso | 13:f3560c403397 | 251 | */ |
musallambseiso | 13:f3560c403397 | 252 | void check_health_replenish(); |
musallambseiso | 13:f3560c403397 | 253 | |
musallambseiso | 13:f3560c403397 | 254 | |
musallambseiso | 13:f3560c403397 | 255 | /** Check Rocket Replenish |
musallambseiso | 12:d68c757d829a | 256 | * |
musallambseiso | 12:d68c757d829a | 257 | * Regenerates rockets (adds 1 to "ammo" variable) at certain waves, if "rocket_regen_trigger" is false, and |
musallambseiso | 12:d68c757d829a | 258 | * the player has less than 3 rockets already, as the maximum is 3 (only executes if "ammo" is less than 3). |
musallambseiso | 12:d68c757d829a | 259 | * Then sets "rocket_regen_trigger" to true to prevent excessive rocket regeneration. |
musallambseiso | 12:d68c757d829a | 260 | */ |
musallambseiso | 13:f3560c403397 | 261 | void check_rocket_replenish(); |
musallambseiso | 12:d68c757d829a | 262 | |
musallambseiso | 11:10c01766f774 | 263 | |
musallambseiso | 13:f3560c403397 | 264 | /** Check Star Replenish |
musallambseiso | 12:d68c757d829a | 265 | * |
musallambseiso | 12:d68c757d829a | 266 | * Regenerates star (sets "star" variable to true) at certain waves, if "star_regen_trigger" is false, and |
musallambseiso | 12:d68c757d829a | 267 | * the player does not already have a star, as the maximum is 1 (only executes if "star" is false). Then sets |
musallambseiso | 12:d68c757d829a | 268 | * "star_regen_trigger" to true to prevent excessive star regeneration. |
musallambseiso | 12:d68c757d829a | 269 | */ |
musallambseiso | 13:f3560c403397 | 270 | void check_star_replenish(); |
musallambseiso | 12:d68c757d829a | 271 | |
musallambseiso | 12:d68c757d829a | 272 | |
musallambseiso | 12:d68c757d829a | 273 | /** Check Level 2 |
musallambseiso | 12:d68c757d829a | 274 | * |
musallambseiso | 12:d68c757d829a | 275 | * Moves on to level 2 if wave 5 has been reached. A dialog box is drawn onto the LCD, and the player can move on |
musallambseiso | 12:d68c757d829a | 276 | * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the |
musallambseiso | 12:d68c757d829a | 277 | * enemy ships at their starting positions at an elevated speed (at LEVEL_TWO, which is defined as 3). |
musallambseiso | 12:d68c757d829a | 278 | * Sets the wave to 6 (sets "wave_counter" variable to 6). |
musallambseiso | 13:f3560c403397 | 279 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 280 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 281 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 282 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 283 | */ |
musallambseiso | 12:d68c757d829a | 284 | void check_level_two(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 285 | |
musallambseiso | 12:d68c757d829a | 286 | |
musallambseiso | 12:d68c757d829a | 287 | /** Check Level 3 |
musallambseiso | 12:d68c757d829a | 288 | * |
musallambseiso | 12:d68c757d829a | 289 | * Moves on to level 3 if wave 25 has been reached. A dialog box is drawn onto the LCD, and the player can move on |
musallambseiso | 12:d68c757d829a | 290 | * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the |
musallambseiso | 12:d68c757d829a | 291 | * enemy ships at their starting positions at an elevated speed (at LEVEL_THREE, which is defined as 4). |
musallambseiso | 12:d68c757d829a | 292 | * Sets the wave to 26 (sets "wave_counter" variable to 26). |
musallambseiso | 13:f3560c403397 | 293 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 294 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 295 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 296 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 297 | */ |
musallambseiso | 12:d68c757d829a | 298 | void check_level_three(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 299 | |
musallambseiso | 12:d68c757d829a | 300 | |
musallambseiso | 12:d68c757d829a | 301 | /** Check Level 4 |
musallambseiso | 12:d68c757d829a | 302 | * |
musallambseiso | 12:d68c757d829a | 303 | * Moves on to level 4 if wave 50 has been reached. A dialog box is drawn onto the LCD, and the player can move on |
musallambseiso | 12:d68c757d829a | 304 | * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the |
musallambseiso | 12:d68c757d829a | 305 | * enemy ships at their starting positions at an elevated speed (at LEVEL_FOUR, which is defined as 5). |
musallambseiso | 12:d68c757d829a | 306 | * Sets the wave to 51 (sets "wave_counter" variable to 51). |
musallambseiso | 13:f3560c403397 | 307 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 308 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 309 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 310 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 311 | */ |
musallambseiso | 12:d68c757d829a | 312 | void check_level_four(N5110 &lcd, Gamepad &pad); |
musallambseiso | 8:1c0bc1a08153 | 313 | |
musallambseiso | 12:d68c757d829a | 314 | |
musallambseiso | 12:d68c757d829a | 315 | /** Check Level 5 |
musallambseiso | 12:d68c757d829a | 316 | * |
musallambseiso | 12:d68c757d829a | 317 | * Moves on to level 5 if wave 100 has been reached. A dialog box is drawn onto the LCD, and the player can move on |
musallambseiso | 12:d68c757d829a | 318 | * to the next level by pressing a button (BACK). Reinitializes the friendly ship at it starting position, and the |
musallambseiso | 12:d68c757d829a | 319 | * enemy ships at their starting positions at an elevated speed (at LEVEL_FIVE, which is defined as 6). |
musallambseiso | 12:d68c757d829a | 320 | * Sets the wave to 101 (sets "wave_counter" variable to 101). |
musallambseiso | 13:f3560c403397 | 321 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 322 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 323 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 324 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 325 | */ |
musallambseiso | 12:d68c757d829a | 326 | void check_level_five(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 327 | |
musallambseiso | 12:d68c757d829a | 328 | |
musallambseiso | 12:d68c757d829a | 329 | /** Check Pause |
musallambseiso | 12:d68c757d829a | 330 | * |
musallambseiso | 12:d68c757d829a | 331 | * Pauses the game if a button (START) is pressed, and the player has remaining pauses to use ("pause" variable is > 0). |
musallambseiso | 12:d68c757d829a | 332 | * Flashes the pad's LEDs and switches the LCD's mode between normal and inverse until a button (START) is pressed again. |
musallambseiso | 12:d68c757d829a | 333 | * Once unpaused, removes one pause from the player (subtracts 1 from the "pauses" variable). |
musallambseiso | 13:f3560c403397 | 334 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 335 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 336 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 337 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 338 | */ |
musallambseiso | 12:d68c757d829a | 339 | void check_pause(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 340 | |
musallambseiso | 12:d68c757d829a | 341 | |
musallambseiso | 12:d68c757d829a | 342 | /** Check LCD Mode |
musallambseiso | 12:d68c757d829a | 343 | * |
musallambseiso | 12:d68c757d829a | 344 | * Toggles 'night' mode (LCD's inverse mode) if a button (LEFT) is pressed. Sets the mode back to normal (LCD's normal mode) |
musallambseiso | 12:d68c757d829a | 345 | * if a button (RIGHT) is pressed. |
musallambseiso | 13:f3560c403397 | 346 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 347 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 348 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 349 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 350 | */ |
musallambseiso | 12:d68c757d829a | 351 | void check_mode_toggle(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 352 | |
musallambseiso | 12:d68c757d829a | 353 | |
musallambseiso | 12:d68c757d829a | 354 | /** Check for Gameover Sequence |
musallambseiso | 12:d68c757d829a | 355 | * |
musallambseiso | 12:d68c757d829a | 356 | * Ends the game if the player has no lives remaining ("collisions" variable is above 5). A dialog box is printed onto the LCD, |
musallambseiso | 12:d68c757d829a | 357 | * showing the player's score (waves survived). Once a button is pressed (BACK), the friendly ship is reinitialized at its |
musallambseiso | 12:d68c757d829a | 358 | * starting position, and the enemy ships at their starting positions at the initial speed (at LEVEL_ONE, which is defined as 2). |
musallambseiso | 13:f3560c403397 | 359 | * @param N5110 - nokia LCD library |
musallambseiso | 13:f3560c403397 | 360 | * @param lcd - pointer to nokia LCD library |
musallambseiso | 13:f3560c403397 | 361 | * @param Gamepad - gamepad library |
musallambseiso | 13:f3560c403397 | 362 | * @param pad - pointer to gamepad library |
musallambseiso | 12:d68c757d829a | 363 | */ |
musallambseiso | 12:d68c757d829a | 364 | void check_gameover(N5110 &lcd, Gamepad &pad); |
musallambseiso | 12:d68c757d829a | 365 | |
musallambseiso | 4:e84724dcad49 | 366 | }; |
musallambseiso | 4:e84724dcad49 | 367 | |
musallambseiso | 4:e84724dcad49 | 368 | #endif |