Version of Robotron arcade game using LPC1768, a Gameduino shield, a serial EEPROM (for high scores), two microswitch joysticks and two buttons plus a box to put it in. 20 levels of mayhem.

Dependencies:   25LCxxx_SPI CommonTypes Gameduino mbed

HumanObject.h

Committer:
RichardE
Date:
2013-06-17
Revision:
18:70190f956a24
Parent:
7:e72691603fd3

File content as of revision 18:70190f956a24:

/*
 * SOURCE FILE : HumanObject.h
 *
 * Represents a wandering human.
 *
 */

#ifndef HumanObjectIncluded
  
  #define HumanObjectIncluded

  #include "Types.h"
  #include "GameObject.h"
  #include "GameObjectTypes.h"

  class HumanObject : public GameObject {
    
  public :

    // States a human can be in.
    // Each human starts in the WalkingAbout state and keeps wandering around as
    // long as it is in this state.
    // If the player touches a human than it changes to the Rescued state and
    // it stops walking and its  appearance changes to show the number of points
    // awarded. Eventually this disappears and the Visible property inherited from
    // GameObject is set to false. On next draw the human will be removed from the
    // array of humans and replaced with NULL.
    enum State {
      WalkingAbout,
      Rescued,
            Dead,
    };
    
        // Different kinds of human.
        enum HumanType {
            Woman,
            Man,
        };
        
    // Current state of human.
    State CurrentState;
    
    /***************/
    /* CONSTRUCTOR */
    /***************/
    HumanObject();
    
    /**************/
    /* DESTRUCTOR */
    /**************/
    virtual ~HumanObject();

    /************************/
    /* GET GAME OBJECT TYPE */
    /************************/
    // Returns type of game object.
    virtual GameObjectTypes GetType( void ) {
      return HumanObjectType;
    }

        /*****************************/
        /* GET TYPE OF HUMAN THIS IS */
        /*****************************/
        // Returns type of human.
        HumanType GetHumanType( void );
        
    /************************/
    /* MOVE THE GAME OBJECT */
    /************************/
    virtual void ProtectedMove( void );

    /************************/
    /* DRAW THE GAME OBJECT */
    /************************/
    // Pass pointer to Gameduino to draw on in gd.
    // This is only called after it has been established that the
    // game object is visible.
    virtual void Draw( Gameduino *gd );
   
  private :

    // Address of animation data in program memory.
    const UInt8 *animationData;
    
    // Horizontal and vertical velocities.
    Int16 hSpeed, vSpeed;

    // Countdown used when in rescued or dead states.
    UInt8 countdown;
    
    // Index of next animation to use when constructing.
    // Cycles around all human animations.
    static UInt8 nextAnimationIndex;
    
  };
    
#endif

/* END of HumanObject.h */