Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

Committer:
KaifK
Date:
Sun May 17 00:59:51 2020 +0000
Revision:
7:2a3b566aedd3
Parent:
6:09a555c0d997
Child:
8:5ede90f99a27
aiming mechanism rebuilt gn

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 6:09a555c0d997 18 /** @brief reads values user inputs i.e. direction and power (x and y)*/
KaifK 4:08a0ff6668df 19 void readInput(Gamepad &pad, N5110 &lcd);
KaifK 6:09a555c0d997 20 /** @brief updates score on screen*/
KaifK 4:08a0ff6668df 21 void updateScore(N5110 &lcd);
KaifK 6:09a555c0d997 22 /** @brief updates number of lives on leds */
KaifK 4:08a0ff6668df 23 void updateLives(Gamepad &pad);
KaifK 4:08a0ff6668df 24
KaifK 4:08a0ff6668df 25 private:
KaifK 7:2a3b566aedd3 26 /** @brief takes pointer input for aim on x-axis */
KaifK 7:2a3b566aedd3 27 void pointer_input(Gamepad &pad, N5110 &lcd);
KaifK 7:2a3b566aedd3 28
KaifK 7:2a3b566aedd3 29 /** @brief takes power input for aim on y-axis */
KaifK 7:2a3b566aedd3 30 void power_meter_input(Gamepad &pad, N5110 &lcd);
KaifK 7:2a3b566aedd3 31
KaifK 7:2a3b566aedd3 32 /** @brief converts _x_val from pointer range (8-72) to screen range (0-84) */
KaifK 7:2a3b566aedd3 33 void convert_to_shot_x();
KaifK 7:2a3b566aedd3 34
KaifK 7:2a3b566aedd3 35 /** @brief converts _y_val from power meter range (0-20) to goal range (0-24) */
KaifK 7:2a3b566aedd3 36 void convert_to_shot_y();
KaifK 4:08a0ff6668df 37 int _score;
KaifK 4:08a0ff6668df 38 int _lives;
KaifK 4:08a0ff6668df 39 int _level;
KaifK 4:08a0ff6668df 40 int _x_val;
KaifK 4:08a0ff6668df 41 int _y_val;
KaifK 7:2a3b566aedd3 42 int _shot_x;
KaifK 7:2a3b566aedd3 43 int _shot_y;
KaifK 4:08a0ff6668df 44 int _speed;
KaifK 4:08a0ff6668df 45 bool _is_goal;
KaifK 4:08a0ff6668df 46 };
KaifK 7:2a3b566aedd3 47
KaifK 7:2a3b566aedd3 48 /** @brief displays constant background w/o obstacles */
KaifK 4:08a0ff6668df 49 void display_background(N5110 &lcd);
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