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
Diff: CrusherObject.h
- Revision:
- 7:e72691603fd3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CrusherObject.h Sat Jun 08 16:44:54 2013 +0000 @@ -0,0 +1,87 @@ +/* + * SOURCE FILE : CrusherObject.h + * + * Represents a wandering human. + * + */ + +#ifndef CrusherObjectIncluded + + #define CrusherObjectIncluded + + #include "Types.h" + #include "EnemyObject.h" + #include "GameObjectTypes.h" + + class CrusherObject : public EnemyObject { + + public : + + /***************/ + /* CONSTRUCTOR */ + /***************/ + CrusherObject(); + + /**************/ + /* DESTRUCTOR */ + /**************/ + virtual ~CrusherObject(); + + /*****************************/ + /* GET TYPE OF ENEMY THIS IS */ + /*****************************/ + // Returns enemy type. + virtual EnemyType GetEnemyType( void ) { + return Crusher; + } + + /*******************************************************/ + /* GET NUMBER OF POINTS AWARDED FOR KILLING THIS ENEMY */ + /*******************************************************/ + // Returns number of points. + virtual UInt8 GetPoints( void ) { + return 0x10; // BCD! + } + + /************************/ + /* MOVE THE GAME OBJECT */ + /************************/ + virtual void ProtectedMove( void ); + + /************************/ + /* DRAW THE GAME OBJECT */ + /************************/ + // Pass pointer to a 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 ); + + /********************************************/ + /* INFORM ENEMY IT HAS BEEN HIT BY A BULLET */ + /********************************************/ + // Default implementation does nothing but if special behaviour + // is required in a derived class then this should be overridden. + // Note that this does NOT deal with determining if the enemy is dead or not. + // An enemy ALWAYS dies if HitPoints reaches zero. + virtual void RegisterHitByBullet( void ); + + private : + + // Address of animation data in program memory. + const UInt8 *animationData; + + // Horizontal and vertical velocities. + Int16 hSpeed, vSpeed; + + // Stun countdown. Crusher does not move until this reaches zero. + UInt8 stunCountdown; + + // Frame count at the moment crusher was stunned. + UInt8 stunFrameCount; + + }; + +#endif + +/* END of CrusherObject.h */ +