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.
Dependencies: mbed N5110 ShiftReg PinDetect
Diff: Game.h
- 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