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

Committer:
RichardE
Date:
Mon Jun 17 15:10:43 2013 +0000
Revision:
18:70190f956a24
Parent:
13:50779b12ff51
Improved response to button 1 when entering high scores (HighScoreEntry.cpp).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardE 8:82d88f9381f3 1 /*
RichardE 8:82d88f9381f3 2 * SOURCE FILE : BlueMeanyObject.h
RichardE 8:82d88f9381f3 3 *
RichardE 8:82d88f9381f3 4 * Represents the BlueMeany enemy object.
RichardE 8:82d88f9381f3 5 *
RichardE 8:82d88f9381f3 6 */
RichardE 8:82d88f9381f3 7
RichardE 8:82d88f9381f3 8 #ifndef BlueMeanyObjectIncluded
RichardE 8:82d88f9381f3 9
RichardE 8:82d88f9381f3 10 #define BlueMeanyObjectIncluded
RichardE 8:82d88f9381f3 11
RichardE 8:82d88f9381f3 12 #include "EnemyObject.h"
RichardE 8:82d88f9381f3 13 #include "SpriteImageId.h"
RichardE 8:82d88f9381f3 14 #include "FrameCounter.h"
RichardE 8:82d88f9381f3 15
RichardE 8:82d88f9381f3 16 class BlueMeanyObject : public EnemyObject {
RichardE 8:82d88f9381f3 17
RichardE 8:82d88f9381f3 18 public :
RichardE 8:82d88f9381f3 19
RichardE 8:82d88f9381f3 20 /***************/
RichardE 8:82d88f9381f3 21 /* CONSTRUCTOR */
RichardE 8:82d88f9381f3 22 /***************/
RichardE 8:82d88f9381f3 23 BlueMeanyObject() :
RichardE 8:82d88f9381f3 24 hVelocity( 0 ),
RichardE 8:82d88f9381f3 25 vVelocity( 0 )
RichardE 8:82d88f9381f3 26 {
RichardE 8:82d88f9381f3 27 }
RichardE 8:82d88f9381f3 28
RichardE 8:82d88f9381f3 29 /**************/
RichardE 8:82d88f9381f3 30 /* DESTRUCTOR */
RichardE 8:82d88f9381f3 31 /**************/
RichardE 8:82d88f9381f3 32 virtual ~BlueMeanyObject() {
RichardE 8:82d88f9381f3 33 }
RichardE 8:82d88f9381f3 34
RichardE 13:50779b12ff51 35 /*****************************/
RichardE 13:50779b12ff51 36 /* GET TYPE OF ENEMY THIS IS */
RichardE 13:50779b12ff51 37 /*****************************/
RichardE 13:50779b12ff51 38 // Returns enemy type.
RichardE 13:50779b12ff51 39 virtual EnemyType GetEnemyType( void ) {
RichardE 13:50779b12ff51 40 return BlueMeany;
RichardE 13:50779b12ff51 41 }
RichardE 8:82d88f9381f3 42
RichardE 8:82d88f9381f3 43 /*******************************************************/
RichardE 8:82d88f9381f3 44 /* GET NUMBER OF POINTS AWARDED FOR KILLING THIS ENEMY */
RichardE 8:82d88f9381f3 45 /*******************************************************/
RichardE 8:82d88f9381f3 46 // Returns number of points.
RichardE 8:82d88f9381f3 47 virtual UInt8 GetPoints( void ) {
RichardE 8:82d88f9381f3 48 return 0x10; // BCD!
RichardE 8:82d88f9381f3 49 }
RichardE 8:82d88f9381f3 50
RichardE 13:50779b12ff51 51 /*****************************************************************/
RichardE 13:50779b12ff51 52 /* PERFORM ANY INIITALISATION REQUIRED AT LEVEL START OR RESTART */
RichardE 13:50779b12ff51 53 /*****************************************************************/
RichardE 13:50779b12ff51 54 // Derived classes should override this if necessary.
RichardE 13:50779b12ff51 55 virtual void LevelRestart( void ) {
RichardE 13:50779b12ff51 56 // Bring Blue Meany to a halt at the start of the level.
RichardE 13:50779b12ff51 57 hVelocity = 0;
RichardE 13:50779b12ff51 58 vVelocity = 0;
RichardE 13:50779b12ff51 59 }
RichardE 13:50779b12ff51 60
RichardE 8:82d88f9381f3 61 /************************/
RichardE 8:82d88f9381f3 62 /* MOVE THE GAME OBJECT */
RichardE 8:82d88f9381f3 63 /************************/
RichardE 8:82d88f9381f3 64 virtual void ProtectedMove( void );
RichardE 8:82d88f9381f3 65
RichardE 8:82d88f9381f3 66 /************************/
RichardE 8:82d88f9381f3 67 /* DRAW THE GAME OBJECT */
RichardE 8:82d88f9381f3 68 /************************/
RichardE 8:82d88f9381f3 69 // This is only called after it has been established that the
RichardE 8:82d88f9381f3 70 // game object is visible.
RichardE 8:82d88f9381f3 71 virtual void Draw( Gameduino *gd ) {
RichardE 8:82d88f9381f3 72 Gameduino::Rotation transform = ( Xco < chaseObject->Xco ) ? Gameduino::FlipX : Gameduino::None;
RichardE 8:82d88f9381f3 73 gd->sprite( SpriteNumber, ToPixel( Xco ), ToPixel( Yco ), BlueMeanyImage, 0, transform, BadGuy );
RichardE 8:82d88f9381f3 74 }
RichardE 8:82d88f9381f3 75
RichardE 8:82d88f9381f3 76 private :
RichardE 8:82d88f9381f3 77
RichardE 8:82d88f9381f3 78 enum {
RichardE 8:82d88f9381f3 79 MaxBlueMeanyVelocity = 64,
RichardE 8:82d88f9381f3 80 };
RichardE 8:82d88f9381f3 81
RichardE 8:82d88f9381f3 82 // Horizontal and vertical velocities. NOT in pixels.
RichardE 8:82d88f9381f3 83 Int16 hVelocity, vVelocity;
RichardE 8:82d88f9381f3 84
RichardE 8:82d88f9381f3 85 };
RichardE 8:82d88f9381f3 86
RichardE 8:82d88f9381f3 87 #endif
RichardE 8:82d88f9381f3 88
RichardE 8:82d88f9381f3 89 /* END of BlueMeanyObject.h */