
Kaif Kutchwala 201267448 ELEC2645 Project
Dependencies: mbed
Game/Game.h@8:5ede90f99a27, 2020-05-17 (annotated)
- 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?
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 | 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 |