Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: Map/Map.h
- Revision:
- 7:cd3cafda3dd4
- Parent:
- 6:39bda45efeed
- Child:
- 8:9b77eea95088
diff -r 39bda45efeed -r cd3cafda3dd4 Map/Map.h
--- a/Map/Map.h Mon Apr 08 09:14:33 2019 +0000
+++ b/Map/Map.h Wed Apr 10 09:18:25 2019 +0000
@@ -6,33 +6,65 @@
#include "Gamepad.h"
#include "PlayerControl.h"
#include "Ball.h"
+//#include "PowerUp.h"
#include <vector>
+
/** Map Class
@author Kostadin Chakarov, University of Leeds
-@brief Creates the map in the Breakout++ game
-@date March 2019
-*/
-
+@brief Creates the map in the Breakout game
+@date April 2019
+*/
+//x and y coords, width, height
struct Brick {
int x, y, w, h;
};
+//need to write above to able to use in level
+class Map;
+
+//this only contains the initBricks function as it stores the bricks in the level
+class Level
+{
+public:
+ virtual void initBricks(Map &map) {} //virtual because will be different for each level
+};
+
+class Level1 : public Level
+{
+public:
+ virtual void initBricks(Map &map);
+};
+
+class Level2 : public Level
+{
+public:
+ virtual void initBricks(Map &map);
+};
+
+
class Map
{
private:
- std::vector<Brick> bricks;
+ int currentLevel; //keeps track of the current level
+ std::vector<Level*> levels; //stores the levels in a vector
+ std::vector<Brick> bricks; //stores the bricks in a vector
+ //std::vector<PowerUp> powerUps;
public:
- Map();
+ Map();
~Map();
+
+ int getCurrentLevel() { return currentLevel; } //returns the current level
+ bool hasWon() { return currentLevel >= levels.size(); } //true if current level = number of levels
+
void initBricks();
void drawMap(N5110 &lcd);
- void checkCollision(GameObject &obj);
- void destroyMap(N5110 &lcd, Gamepad &pad, Ball &ball);
-
-private:
-
+ void checkCollision(GameObject &obj); // checks if brick<->ball collided
+ void resolveCollision(const Brick &brick, GameObject &obj); //resolves the collision
+ bool checkLevel(); //checks if we cleared the level and if we won
+ void reset(); //resets game
+ void addBrick(Brick& brick) { bricks.push_back(brick); } //adds the bricks to the vector
};
#endif
\ No newline at end of file