Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

Committer:
KaifK
Date:
Sun May 17 23:00:04 2020 +0000
Revision:
9:e6566d09f087
Parent:
8:5ede90f99a27
Child:
10:dbc149804a06
random commit (cant afford to lose this code again);

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