Hugo Hu / Mbed 2 deprecated BRAVEHEART

Dependencies:   mbed N5110 ShiftReg PinDetect

Entity.h

Committer:
Siriagus
Date:
2015-05-10
Revision:
15:d5eb13c4c1c6
Parent:
13:7ab71c7c311b
Child:
16:caf613d5b85e

File content as of revision 15:d5eb13c4c1c6:

#ifndef ENTITY_H
#define ENTITY_H

/** An entity represents a movable character, such as the player, enemies etc.
*   Note that the entity class does not contain the sprite (image) of the entity.
*   Different sprites are given as 2D const int arrays in 
*   OBS! The entity's dimensions should be the same as the width and height or else this will lead to undefined behaviour!
*/
class Entity
{
    public:
        Entity() {x = y = width = height = vx = vy = 0; facingLeft = true; onGround = false;}
        Entity(int x, int y, int w, int h) : x(x), y(y), width(w), height(h) {vx = vy = 0; facingLeft = true; onGround = false;}
        
        int x, y;       /// Position of entity (origin: left upper corner)
        int vx, vy;     /// Velocity of entity
        int width;      /// Width of entity
        int height;     /// Height of entity
        
        bool facingLeft; /// True if the entity is facing left
        bool onGround;  /// True if entity is standing on the ground.
        
        int getRight() {return x + width - 1;}      /// Returns x-position of the right edge
        int getBottom() {return y + height - 1;}    /// Returns y-position of the bottom edge
        
};

class Enemy : public Entity
{
    public:
        Enemy(int x, int y, int w, int h) : Entity(x,y,w,h) {dead = false;}
        bool dead;
};

#endif