Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Revision:
19:89c3eeb3761b
Parent:
18:709ea375b0df
--- a/Game.h	Mon May 11 04:40:23 2015 +0000
+++ b/Game.h	Thu Mar 25 03:43:10 2021 +0000
@@ -6,24 +6,23 @@
 */
 
 #include "State.h"
-#include "Entity.h"
-#include "Enemy.h"
-#include "map.h"
-#include "Geometry.h" // Rectangle and Point structs
-#include <vector>
+#include "Sprites.h"
+#include "ShiftReg.h"
+#include "Global.h"
 #include <sstream>
-#include "Global.h"
-
-#define TERMINAL_VELOCITY 3
-
 
 /// State: Game
 class Game : public State
 {
     public:
         /// Creates the Game state
-        Game(StateManager* fsm, N5110 *lcd, InputManager* input, Sound *sound)
-                : State(fsm, lcd, input, sound) {init();}
+        Game(StateManager* fsm, N5110 *lcd, InputManager* input, Sound *sound, ShiftReg *shiftreg)
+                : State(fsm, lcd, input, sound, shiftreg) 
+                {
+                    gameProperty.currentLayer = 1;
+                    clearAll();
+                    init();
+                }
                 
         /// Deconstructor: Frees all memory that was temporarely allocated by the Game state.
         ~Game();
@@ -39,24 +38,21 @@
         void init();    // Sets some initial values
         void spawnEnemy();  // Spawns a new enemy
         void moveEnemies(); // Movement and AI for all enemies
-        void moveWithCollisionTest(Entity* entity, const int map[HEIGHT][WIDTH]); // Moves entity in map. If collision occurs, entity can not move further.
+        void moveWithCollisionTest(Entity* entity, const bool map[HEIGHT][WIDTH]); // Moves entity in map. If collision occurs, entity can not move further.
         bool hitTestRect(Rectangle r1, Rectangle r2); // Returns true if two rectangles overlap @see https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection#Axis-Aligned_Bounding_Box
-        bool bulletHitMap(Rectangle &bulletColRect, const int map[HEIGHT][WIDTH]); // Help function for detecting collision between moving bullet and map.
+        bool bulletHitMap(Rectangle &bulletColRect, const bool map[HEIGHT][WIDTH]); // Help function for detecting collision between moving bullet and map.
         void renderScore(); // Draws the current score in upper right corner
         void respawnPlayer(); // Respawns player at start position
-        
-        int livesLeft; // The number of lives left
-        bool paused;   // True if the game is paused
+        void clearAll(); // Clear all entities
+    
+        Map::MapProperty mapProperty;
+        GameX::GameProperty gameProperty;
         
-        int spawnRate;  // Probability of enemy spawning in a single frame/update.
-        static const int spawnPoints[3][2]; // Positions where enemies can spawn.
-        
-        Entity player;  // Player object
-        std::vector<Point*> bullets;    // Container for bullets
-        std::vector<Enemy*> enemies;    // Container for enemies
+        ShiftReg shift;
         
         bool releasedBtnB;  // True if button B has been released after being pressed down
         bool releasedBtnC;  // True if button C has been released after being pressed down
+        bool releasedBtnD;  // True if button D has been released after being pressed down
 };
 
 #endif