
Kaif Kutchwala 201267448 ELEC2645 Project
Dependencies: mbed
Ball/Ball.h@31:e1f80d181779, 2020-05-26 (annotated)
- Committer:
- KaifK
- Date:
- Tue May 26 15:50:46 2020 +0000
- Revision:
- 31:e1f80d181779
- Parent:
- 25:467d8fd0fec4
Final Submission. I have read and agreed with Statement of Academic Integrity.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KaifK | 2:21973e665a32 | 1 | #ifndef BALL_H |
KaifK | 2:21973e665a32 | 2 | #define BALL_H |
KaifK | 2:21973e665a32 | 3 | |
KaifK | 2:21973e665a32 | 4 | #include <cmath> |
KaifK | 2:21973e665a32 | 5 | #include "mbed.h" |
KaifK | 2:21973e665a32 | 6 | #include "Gamepad.h" |
KaifK | 18:100e7d3509b5 | 7 | #include "Sprites.h" |
KaifK | 2:21973e665a32 | 8 | #include "N5110.h" |
KaifK | 2:21973e665a32 | 9 | |
KaifK | 15:5bf3f951d337 | 10 | #define BALL_INIT_X 42 |
KaifK | 15:5bf3f951d337 | 11 | #define BALL_INIT_Y 49 |
KaifK | 25:467d8fd0fec4 | 12 | |
KaifK | 25:467d8fd0fec4 | 13 | /** Ball class |
KaifK | 25:467d8fd0fec4 | 14 | @brief Class for manipulating the ball in the game, displaying levels and |
KaifK | 25:467d8fd0fec4 | 15 | checking for goal conditions. |
KaifK | 25:467d8fd0fec4 | 16 | @version 1.0 |
KaifK | 25:467d8fd0fec4 | 17 | @author Kaif Kutchwala |
KaifK | 25:467d8fd0fec4 | 18 | @date May 2020 |
KaifK | 25:467d8fd0fec4 | 19 | */ |
KaifK | 25:467d8fd0fec4 | 20 | |
KaifK | 2:21973e665a32 | 21 | class Ball { |
KaifK | 9:e6566d09f087 | 22 | private: |
KaifK | 25:467d8fd0fec4 | 23 | //objects |
KaifK | 25:467d8fd0fec4 | 24 | N5110 *_lcd; |
KaifK | 25:467d8fd0fec4 | 25 | |
KaifK | 2:21973e665a32 | 26 | public: |
KaifK | 2:21973e665a32 | 27 | /** Constructor */ |
KaifK | 9:e6566d09f087 | 28 | Ball(N5110 &lcd); |
KaifK | 25:467d8fd0fec4 | 29 | |
KaifK | 2:21973e665a32 | 30 | /** Destructor */ |
KaifK | 2:21973e665a32 | 31 | ~Ball(); |
KaifK | 25:467d8fd0fec4 | 32 | |
KaifK | 25:467d8fd0fec4 | 33 | /** @brief initialises ball position, radius and level */ |
KaifK | 9:e6566d09f087 | 34 | void init(); |
KaifK | 25:467d8fd0fec4 | 35 | |
KaifK | 25:467d8fd0fec4 | 36 | /** @brief Draws ball at position (x,y) |
KaifK | 25:467d8fd0fec4 | 37 | * @param x @details x coordinate of specified position |
KaifK | 25:467d8fd0fec4 | 38 | * @param y @details y coordinate of specified position |
KaifK | 25:467d8fd0fec4 | 39 | * @param radius @details radius of ball |
KaifK | 25:467d8fd0fec4 | 40 | */ |
KaifK | 15:5bf3f951d337 | 41 | void drawBall(int x, int y, int radius); |
KaifK | 25:467d8fd0fec4 | 42 | |
KaifK | 25:467d8fd0fec4 | 43 | /** @brief Plays animation of ball being shot based on user input. |
KaifK | 25:467d8fd0fec4 | 44 | * @param user_input_x @details x coordinate of final position |
KaifK | 25:467d8fd0fec4 | 45 | * @param user_input_y @details y coordinate of final position |
KaifK | 25:467d8fd0fec4 | 46 | */ |
KaifK | 9:e6566d09f087 | 47 | void playShot(int user_input_x, int user_input_y); |
KaifK | 25:467d8fd0fec4 | 48 | |
KaifK | 8:5ede90f99a27 | 49 | /** @brief displays constant background w/o obstacles */ |
KaifK | 12:ca7329a41fc5 | 50 | void displayBackground(); |
KaifK | 25:467d8fd0fec4 | 51 | |
KaifK | 25:467d8fd0fec4 | 52 | /** @brief displays obstacles for level on lcd |
KaifK | 25:467d8fd0fec4 | 53 | * @param level @details specifies level number |
KaifK | 25:467d8fd0fec4 | 54 | */ |
KaifK | 10:dbc149804a06 | 55 | void displayLevel(int level); |
KaifK | 25:467d8fd0fec4 | 56 | |
KaifK | 12:ca7329a41fc5 | 57 | /** @brief checks if goal has been scored or not and updates |
KaifK | 25:467d8fd0fec4 | 58 | * @param limit @details sets max limit for random generator |
KaifK | 25:467d8fd0fec4 | 59 | * @param x @details sets x coordinate of shot to be checked |
KaifK | 25:467d8fd0fec4 | 60 | * @param y @details sets y coordinate of shot to be checked |
KaifK | 25:467d8fd0fec4 | 61 | * @returns bool value corresponding to whether goal has been scored |
KaifK | 25:467d8fd0fec4 | 62 | * or not |
KaifK | 25:467d8fd0fec4 | 63 | */ |
KaifK | 17:2fbe40177b9c | 64 | bool isGoal(int level, int x, int y); |
KaifK | 25:467d8fd0fec4 | 65 | |
KaifK | 11:59119247dd68 | 66 | //void level_loop(); //displays all levels |
KaifK | 25:467d8fd0fec4 | 67 | |
KaifK | 25:467d8fd0fec4 | 68 | //accesors and mutators |
KaifK | 25:467d8fd0fec4 | 69 | /** @brief sets level to be played/displayed |
KaifK | 25:467d8fd0fec4 | 70 | * @param level @details integer value in range 1-10 |
KaifK | 25:467d8fd0fec4 | 71 | */ |
KaifK | 25:467d8fd0fec4 | 72 | void set_level(int level); |
KaifK | 11:59119247dd68 | 73 | |
KaifK | 25:467d8fd0fec4 | 74 | /** @brief Get level being displayed/played |
KaifK | 25:467d8fd0fec4 | 75 | * @returns integer value in range 1 to 10 referring to levels 1-10 |
KaifK | 25:467d8fd0fec4 | 76 | */ |
KaifK | 10:dbc149804a06 | 77 | int get_level(); |
KaifK | 25:467d8fd0fec4 | 78 | |
KaifK | 25:467d8fd0fec4 | 79 | /** @brief Get position of the ball on lcd screen |
KaifK | 25:467d8fd0fec4 | 80 | * @returns value in Vector2D format {x_coordinate, y_coordinate} |
KaifK | 25:467d8fd0fec4 | 81 | */ |
KaifK | 21:d5b1160f349f | 82 | Vector2D get_position(); |
KaifK | 25:467d8fd0fec4 | 83 | |
KaifK | 2:21973e665a32 | 84 | private: |
KaifK | 10:dbc149804a06 | 85 | //functions |
KaifK | 25:467d8fd0fec4 | 86 | // functions below draw obstacles for corresponding level on lcd |
KaifK | 12:ca7329a41fc5 | 87 | void level_1(); |
KaifK | 12:ca7329a41fc5 | 88 | void level_2(); |
KaifK | 12:ca7329a41fc5 | 89 | void level_3(); |
KaifK | 12:ca7329a41fc5 | 90 | void level_4(); |
KaifK | 12:ca7329a41fc5 | 91 | void level_5(); |
KaifK | 12:ca7329a41fc5 | 92 | void level_6(); |
KaifK | 12:ca7329a41fc5 | 93 | void level_7(); |
KaifK | 12:ca7329a41fc5 | 94 | void level_8(); |
KaifK | 12:ca7329a41fc5 | 95 | void level_9(); |
KaifK | 12:ca7329a41fc5 | 96 | void level_10(); |
KaifK | 25:467d8fd0fec4 | 97 | // functions below check if goal has been scored for given coordinates |
KaifK | 25:467d8fd0fec4 | 98 | // for corresponding level |
KaifK | 12:ca7329a41fc5 | 99 | void check_level_1(int x, int y); |
KaifK | 12:ca7329a41fc5 | 100 | void check_level_2(int x, int y); |
KaifK | 12:ca7329a41fc5 | 101 | void check_level_3(int x, int y); |
KaifK | 12:ca7329a41fc5 | 102 | void check_level_4(int x, int y); |
KaifK | 12:ca7329a41fc5 | 103 | void check_level_5(int x, int y); |
KaifK | 12:ca7329a41fc5 | 104 | void check_level_6(int x, int y); |
KaifK | 12:ca7329a41fc5 | 105 | void check_level_7(int x, int y); |
KaifK | 12:ca7329a41fc5 | 106 | void check_level_8(int x, int y); |
KaifK | 12:ca7329a41fc5 | 107 | void check_level_9(int x, int y); |
KaifK | 12:ca7329a41fc5 | 108 | void check_level_10(int x, int y); |
KaifK | 10:dbc149804a06 | 109 | //variables |
KaifK | 2:21973e665a32 | 110 | int _user_input_x; |
KaifK | 2:21973e665a32 | 111 | int _user_input_y; |
KaifK | 2:21973e665a32 | 112 | int _ball_x; |
KaifK | 2:21973e665a32 | 113 | int _ball_y; |
KaifK | 15:5bf3f951d337 | 114 | int _radius; |
KaifK | 4:08a0ff6668df | 115 | int _height; |
KaifK | 9:e6566d09f087 | 116 | int _level; |
KaifK | 4:08a0ff6668df | 117 | bool _status; |
KaifK | 12:ca7329a41fc5 | 118 | bool _goal; |
KaifK | 25:467d8fd0fec4 | 119 | }; |
KaifK | 25:467d8fd0fec4 | 120 | #endif |