Kostadin Chakarov / Mbed 2 deprecated el17kec

Dependencies:   mbed

Revision:
9:f720f5d87420
Parent:
8:9b77eea95088
Child:
10:da5743dfb137
--- a/Map/Map.h	Wed May 08 13:49:01 2019 +0000
+++ b/Map/Map.h	Wed May 08 23:09:43 2019 +0000
@@ -9,12 +9,6 @@
 #include <vector>
 
 
-/** Map Class
-@author Kostadin Chakarov, University of Leeds
-@brief Creates the map and controls collision between objects in the Breakout game
-@date April 2019
-*/
-
 /** Struct containing all parameters for the bricks  */
 struct Brick {
     int x, y, w, h; /**x and y coords, width, height*/
@@ -57,6 +51,14 @@
     virtual void initBricks(Map &map);
 };
 
+/** Inherits from level and doesn't have any additional functions  */
+class Level3 : public Level
+{
+public:
+    /** Draws the bricks and stores them in the levels vector */
+    virtual void initBricks(Map &map);
+};
+
 
 /*
 Power ups Coding strategy:
@@ -76,36 +78,45 @@
 
 
 struct PowerUpType {
-    int type;
-    int* sprite;
+    int type;       /** Stores the type of the powerup */
+    int* sprite;    /** Stores the sprite of the powerup */
     
+    /** Constructor */
     PowerUpType(int type, int* sprite) : type(type), sprite(sprite) {}
     
+    /** Gives the powerup effect to the player */
     virtual void giveBonus(Paddle &paddle, Ball &ball) {}
+    /** Draws the powerup on the LCD */
     virtual void draw(N5110 &lcd, PowerUp &pUp);
 };
 
+/** Inherits from the powerUpType struct and only changes the giveBonus function */
 struct PaddleSizePUpType : public PowerUpType {
+    /** Constructor */
     PaddleSizePUpType(int type, int* sprite) : PowerUpType(type, sprite) {}
-    
+    /** Gives the powerup effect to the player */
     virtual void giveBonus(Paddle &paddle, Ball &ball);
 };
 
+/** Inherits from the powerUpType struct and only changes the giveBonus function */
 struct PaddleSpeedPUpType : public PowerUpType {
+    /** Constructor */
     PaddleSpeedPUpType(int type, int* sprite) : PowerUpType(type, sprite) {}
-    
+    /** Gives the powerup effect to the player */
     virtual void giveBonus(Paddle &paddle, Ball &ball);
 };
 
+/** Inherits from the powerUpType struct and only changes the giveBonus function */
 struct BallSpeedPUpType : public PowerUpType {
+    /** Constructor */
     BallSpeedPUpType(int type, int* sprite) : PowerUpType(type, sprite) {}
-    
+    /** Gives the powerup effect to the player */
     virtual void giveBonus(Paddle &paddle, Ball &ball);
 };
 
 #define PowerUpW 3
 #define PowerUpH 4
-#define PowerUpDropChancePct 100
+#define PowerUpDropChancePct 10
 
 
 /** PowerUp Class
@@ -124,17 +135,29 @@
     
     
 public:
+    /** Constructor 
+    * @param x the initial x-position of the PowerUp
+    * @param y the initial y-position of the PowerUp
+    * @param pUpType the type of the PowerUp
+    */
     PowerUp(float x, float y, PowerUpType& pUpType);
+    /** Destructor - empty */
     ~PowerUp() {};
     
+    /** Determines the bonus depending on the type of the powerup */
     void giveBonus(Paddle &paddle, Ball &ball) {
         _pUpType->giveBonus(paddle, ball);
         }
+    /** Draws the powerup */
     virtual void draw(N5110 &lcd);
 };
 
 
-
+/** Map Class
+@author Kostadin Chakarov, University of Leeds
+@brief Creates the map and controls collision between objects in the Breakout game
+@date April 2019
+*/
 
 class Map
 {
@@ -154,27 +177,30 @@
     */
     int getCurrentLevel() { return currentLevel; }
     /** Checks if all levels are defeated
-    * @return true if current level = number of levels
+    * @return true if current level == number of levels
     */
     bool hasWon() { return currentLevel >= levels.size(); }
-    /** ???? */
+    /** Get the level object based on the current level number and call initBricks() on it */
     void initBricks();
-    /** Updates drawing of moving objects on map */
+    /** Updates the moving powerups on map */
     void update();
-    /** Creates powerUps depending on the percentage chance */
+    /** Creates powerUps depending on the PowerUpDropChancePct */
     void onBrickHit(const Brick&);
-    /** Initializes and draws all the bricks on the level, as well as powerUps */
+    /** Draws all the bricks on the level, as well as powerUps */
     void drawMap(N5110 &lcd);
     /** Checks if brick <-> ball collided */
     void checkCollision(Ball &ball, Paddle &paddle); 
     /** Resolves the collision */
     void resolveCollision(const Brick &brick, GameObject &obj); 
-    /** Checks if we cleared the level and if we won */
+    /** Checks if we cleared the level and if we won 
+    * @return true if level is cleared
+    */
     bool checkLevel();
-    /** Resets the whole map when game is restarted */
+    /** Resets the whole map when game is (re-)started */
     void reset(); 
-    /** Adds the bricks to the vector */
+    /** Adds the brick to the vector */
     void addBrick(Brick& brick) { bricks.push_back(brick); }
-
+    /** Stores the score of the game */
+    int score;
 };
 #endif
\ No newline at end of file