
Kaif Kutchwala 201267448 ELEC2645 Project
Dependencies: mbed
Game/Game.h@10:dbc149804a06, 2020-05-17 (annotated)
- Committer:
- KaifK
- Date:
- Sun May 17 23:28:13 2020 +0000
- Revision:
- 10:dbc149804a06
- Parent:
- 9:e6566d09f087
- Child:
- 12:ca7329a41fc5
levels finally complete
Who changed what in which revision?
User | Revision | Line number | New 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 generates random value for given limit |
KaifK | 9:e6566d09f087 | 50 | * @param limit @details sets max limit for random generator |
KaifK | 9:e6566d09f087 | 51 | */ |
KaifK | 9:e6566d09f087 | 52 | int random_level_gen(int limit); |
KaifK | 9:e6566d09f087 | 53 | |
KaifK | 4:08a0ff6668df | 54 | int _score; |
KaifK | 4:08a0ff6668df | 55 | int _lives; |
KaifK | 9:e6566d09f087 | 56 | float _x_val; |
KaifK | 9:e6566d09f087 | 57 | float _y_val; |
KaifK | 7:2a3b566aedd3 | 58 | int _shot_x; |
KaifK | 7:2a3b566aedd3 | 59 | int _shot_y; |
KaifK | 9:e6566d09f087 | 60 | float _speed; |
KaifK | 4:08a0ff6668df | 61 | bool _is_goal; |
KaifK | 4:08a0ff6668df | 62 | }; |
KaifK | 7:2a3b566aedd3 | 63 | |
KaifK | 4:08a0ff6668df | 64 | #endif |