Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Committer:
Siriagus
Date:
Sat May 09 14:39:48 2015 +0000
Revision:
14:b4fed570abaf
Parent:
13:7ab71c7c311b
Child:
15:d5eb13c4c1c6
Added function for generating random seed from two unconnected AnalogIn pins.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Siriagus 5:100d960fc6d5 1 #ifndef GAME_H
Siriagus 5:100d960fc6d5 2 #define GAME_H
Siriagus 5:100d960fc6d5 3
Siriagus 12:8178fad5e660 4 /** @file Game.h
Siriagus 12:8178fad5e660 5 * @author Andreas Garmannslund
Siriagus 12:8178fad5e660 6 */
Siriagus 12:8178fad5e660 7
Siriagus 7:678873947b29 8 #include "State.h"
Siriagus 8:9ac6a428fa26 9 #include "Resources.h" // TODO: Move to State.h ?
Siriagus 9:da608ae65df9 10 #include "Entity.h"
Siriagus 11:adb68da98262 11 #include "map.h"
Siriagus 8:9ac6a428fa26 12 #include <vector>
Siriagus 8:9ac6a428fa26 13
Siriagus 14:b4fed570abaf 14 #define TERMINAL_VELOCITY 3
Siriagus 14:b4fed570abaf 15
Siriagus 12:8178fad5e660 16 /// Simple objects with a position (x,y) and velocity (vx, vy)
Siriagus 8:9ac6a428fa26 17 struct Point
Siriagus 8:9ac6a428fa26 18 {
Siriagus 8:9ac6a428fa26 19 int x;
Siriagus 8:9ac6a428fa26 20 int y;
Siriagus 9:da608ae65df9 21 int vx, vy;
Siriagus 8:9ac6a428fa26 22 };
Siriagus 7:678873947b29 23
Siriagus 12:8178fad5e660 24 /// State: Game
Siriagus 5:100d960fc6d5 25 class Game : public State
Siriagus 5:100d960fc6d5 26 {
Siriagus 5:100d960fc6d5 27 public:
Siriagus 12:8178fad5e660 28 /// Creates the Game state
Siriagus 5:100d960fc6d5 29 Game(StateManager* fsm, N5110 *lcd, InputManager* input)
Siriagus 9:da608ae65df9 30 : State(fsm, lcd, input) {init();}
Siriagus 12:8178fad5e660 31
Siriagus 12:8178fad5e660 32 /// Handle input and update logic
Siriagus 7:678873947b29 33 virtual void update(float dt);
Siriagus 12:8178fad5e660 34
Siriagus 12:8178fad5e660 35 /// Draw state to lcd
Siriagus 7:678873947b29 36 virtual void render();
Siriagus 8:9ac6a428fa26 37
Siriagus 8:9ac6a428fa26 38
Siriagus 5:100d960fc6d5 39 private:
Siriagus 13:7ab71c7c311b 40 /// Moves entity in map. If collision occurs, entity can not move further
Siriagus 13:7ab71c7c311b 41 void moveWithCollisionTest(Entity* entity, const int map[HEIGHT][WIDTH]);
Siriagus 13:7ab71c7c311b 42
Siriagus 12:8178fad5e660 43 void init(); /// Sets some initial values
Siriagus 12:8178fad5e660 44 Entity player; /// Player object
Siriagus 13:7ab71c7c311b 45 Entity enemy; /// Enemy object
Siriagus 8:9ac6a428fa26 46
Siriagus 12:8178fad5e660 47 bool releasedBtnB; /// True if button B has been released after being pressed down
Siriagus 12:8178fad5e660 48
Siriagus 12:8178fad5e660 49 std::vector<Point*> bullets; /// Container for bullets
Siriagus 5:100d960fc6d5 50 };
Siriagus 5:100d960fc6d5 51
Siriagus 5:100d960fc6d5 52 #endif