Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Game.h

Committer:
Siriagus
Date:
2015-05-09
Revision:
14:b4fed570abaf
Parent:
13:7ab71c7c311b
Child:
15:d5eb13c4c1c6

File content as of revision 14:b4fed570abaf:

#ifndef GAME_H
#define GAME_H

/** @file Game.h
*   @author Andreas Garmannslund
*/

#include "State.h"
#include "Resources.h" // TODO: Move to State.h ?
#include "Entity.h"
#include "map.h"
#include <vector>

#define TERMINAL_VELOCITY 3

/// Simple objects with a position (x,y) and velocity (vx, vy)
struct Point
{
    int x;
    int y;
    int vx, vy;
};

/// State: Game
class Game : public State
{
    public:
        /// Creates the Game state
        Game(StateManager* fsm, N5110 *lcd, InputManager* input)
                : State(fsm, lcd, input) {init();}
                                
        /// Handle input and update logic
        virtual void update(float dt);
        
        /// Draw state to lcd
        virtual void render();
        
        
    private:
        /// Moves entity in map. If collision occurs, entity can not move further
        void moveWithCollisionTest(Entity* entity, const int map[HEIGHT][WIDTH]);
    
        void init();    /// Sets some initial values
        Entity player;  /// Player object
        Entity enemy;   /// Enemy object
        
        bool releasedBtnB;  /// True if button B has been released after being pressed down
        
        std::vector<Point*> bullets;    /// Container for bullets
};

#endif