Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

Committer:
KaifK
Date:
Sun May 17 17:59:30 2020 +0000
Revision:
8:5ede90f99a27
Parent:
7:2a3b566aedd3
Child:
9:e6566d09f087
game files 90% rebuilt levels and scoring + lives systems left :///

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KaifK 4:08a0ff6668df 1 #ifndef GAME_H
KaifK 4:08a0ff6668df 2 #define GAME_H
KaifK 4:08a0ff6668df 3
KaifK 6:09a555c0d997 4 #include <cmath>
KaifK 4:08a0ff6668df 5 #include "mbed.h"
KaifK 4:08a0ff6668df 6 #include "Gamepad.h"
KaifK 4:08a0ff6668df 7 #include "N5110.h"
KaifK 4:08a0ff6668df 8 #include "Ball.h"
KaifK 4:08a0ff6668df 9 #include "Splash.h"
KaifK 4:08a0ff6668df 10
KaifK 4:08a0ff6668df 11
KaifK 4:08a0ff6668df 12 class Game {
KaifK 4:08a0ff6668df 13 public:
KaifK 4:08a0ff6668df 14 Game();
KaifK 4:08a0ff6668df 15 ~Game();
KaifK 6:09a555c0d997 16 /** @brief initialise game values*/
KaifK 4:08a0ff6668df 17 void init();
KaifK 8:5ede90f99a27 18 /** @brief combines all other functions to form main gameplay loop)*/
KaifK 8:5ede90f99a27 19 void play(Gamepad &pad, N5110 &lcd, Ball &ball);
KaifK 6:09a555c0d997 20 /** @brief reads values user inputs i.e. direction and power (x and y)*/
KaifK 8:5ede90f99a27 21 void readInput(Gamepad &pad, N5110 &lcd, Ball &ball);
KaifK 6:09a555c0d997 22 /** @brief updates score on screen*/
KaifK 4:08a0ff6668df 23 void updateScore(N5110 &lcd);
KaifK 6:09a555c0d997 24 /** @brief updates number of lives on leds */
KaifK 4:08a0ff6668df 25 void updateLives(Gamepad &pad);
KaifK 8:5ede90f99a27 26
KaifK 4:08a0ff6668df 27 private:
KaifK 7:2a3b566aedd3 28 /** @brief takes pointer input for aim on x-axis */
KaifK 8:5ede90f99a27 29 void pointer_input(Gamepad &pad, N5110 &lcd, Ball &ball);
KaifK 7:2a3b566aedd3 30
KaifK 7:2a3b566aedd3 31 /** @brief takes power input for aim on y-axis */
KaifK 8:5ede90f99a27 32 void power_meter_input(Gamepad &pad, N5110 &lcd, Ball &ball);
KaifK 7:2a3b566aedd3 33
KaifK 7:2a3b566aedd3 34 /** @brief converts _x_val from pointer range (8-72) to screen range (0-84) */
KaifK 7:2a3b566aedd3 35 void convert_to_shot_x();
KaifK 7:2a3b566aedd3 36
KaifK 7:2a3b566aedd3 37 /** @brief converts _y_val from power meter range (0-20) to goal range (0-24) */
KaifK 7:2a3b566aedd3 38 void convert_to_shot_y();
KaifK 8:5ede90f99a27 39
KaifK 4:08a0ff6668df 40 int _score;
KaifK 4:08a0ff6668df 41 int _lives;
KaifK 4:08a0ff6668df 42 int _level;
KaifK 4:08a0ff6668df 43 int _x_val;
KaifK 4:08a0ff6668df 44 int _y_val;
KaifK 7:2a3b566aedd3 45 int _shot_x;
KaifK 7:2a3b566aedd3 46 int _shot_y;
KaifK 4:08a0ff6668df 47 int _speed;
KaifK 4:08a0ff6668df 48 bool _is_goal;
KaifK 4:08a0ff6668df 49 };
KaifK 7:2a3b566aedd3 50
KaifK 7:2a3b566aedd3 51 /** @brief displays obstacles for level
KaifK 7:2a3b566aedd3 52 * @param level @details number of level
KaifK 7:2a3b566aedd3 53 */
KaifK 7:2a3b566aedd3 54 void displayLevel(int level, N5110 &lcd);
KaifK 7:2a3b566aedd3 55
KaifK 7:2a3b566aedd3 56 /** @brief generates random value for given limit
KaifK 7:2a3b566aedd3 57 * @param limit @details sets max limit for random generator
KaifK 7:2a3b566aedd3 58 */
KaifK 7:2a3b566aedd3 59 int random_level_gen(int limit);
KaifK 7:2a3b566aedd3 60
KaifK 4:08a0ff6668df 61 #endif