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
Level.h@7:e72691603fd3, 2013-06-08 (annotated)
- Committer:
- RichardE
- Date:
- Sat Jun 08 16:44:54 2013 +0000
- Revision:
- 7:e72691603fd3
- Parent:
- 4:673eb9735d44
- Child:
- 8:82d88f9381f3
Now have grunts wandering around on level 1. They follow the player but since no collision detection logic yet nobody ever gets killed.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RichardE | 0:5fa232ee5fdf | 1 | /* |
RichardE | 0:5fa232ee5fdf | 2 | * SOURCE FILE : Level.h |
RichardE | 0:5fa232ee5fdf | 3 | * |
RichardE | 0:5fa232ee5fdf | 4 | * Definition of class Level. |
RichardE | 0:5fa232ee5fdf | 5 | * Base class for all levels. |
RichardE | 0:5fa232ee5fdf | 6 | * |
RichardE | 0:5fa232ee5fdf | 7 | */ |
RichardE | 0:5fa232ee5fdf | 8 | |
RichardE | 0:5fa232ee5fdf | 9 | #ifndef LevelDefined |
RichardE | 0:5fa232ee5fdf | 10 | |
RichardE | 0:5fa232ee5fdf | 11 | #define LevelDefined |
RichardE | 0:5fa232ee5fdf | 12 | |
RichardE | 0:5fa232ee5fdf | 13 | #include "Types.h" |
RichardE | 0:5fa232ee5fdf | 14 | #include "Gameduino.h" // Gameduino library |
RichardE | 1:dfd5eaaf96a3 | 15 | #include "GDExtra.h" // a few more Gameduino related functions |
RichardE | 1:dfd5eaaf96a3 | 16 | #include "GDConst.h" // a few more Gameduino constants |
RichardE | 1:dfd5eaaf96a3 | 17 | #include "CharCodes.h" // character codes |
RichardE | 1:dfd5eaaf96a3 | 18 | #include "CharBlocks.h" |
RichardE | 1:dfd5eaaf96a3 | 19 | #include "StringData.h" |
RichardE | 0:5fa232ee5fdf | 20 | #include "HighScoreTable.h" |
RichardE | 2:bb0f631a6068 | 21 | #include "CharFrame.h" |
RichardE | 4:673eb9735d44 | 22 | #include "PanelControls.h" |
RichardE | 4:673eb9735d44 | 23 | #include "PlayerObject.h" |
RichardE | 0:5fa232ee5fdf | 24 | #include "ArenaConst.h" |
RichardE | 0:5fa232ee5fdf | 25 | #include "SpriteImageId.h" |
RichardE | 0:5fa232ee5fdf | 26 | #include "GameObject.h" |
RichardE | 7:e72691603fd3 | 27 | #include "HumanObject.h" |
RichardE | 0:5fa232ee5fdf | 28 | #include "GruntObject.h" |
RichardE | 0:5fa232ee5fdf | 29 | #include "CrusherObject.h" |
RichardE | 1:dfd5eaaf96a3 | 30 | #include "BrainObject.h" |
RichardE | 7:e72691603fd3 | 31 | #if 0 |
RichardE | 7:e72691603fd3 | 32 | #include "BlueMeanyObject.h" |
RichardE | 0:5fa232ee5fdf | 33 | #include "SoundManager.h" |
RichardE | 0:5fa232ee5fdf | 34 | #include "Sounds.h" |
RichardE | 0:5fa232ee5fdf | 35 | #endif |
RichardE | 0:5fa232ee5fdf | 36 | |
RichardE | 0:5fa232ee5fdf | 37 | class Level { |
RichardE | 0:5fa232ee5fdf | 38 | |
RichardE | 0:5fa232ee5fdf | 39 | public : |
RichardE | 0:5fa232ee5fdf | 40 | |
RichardE | 0:5fa232ee5fdf | 41 | // Number of this level. |
RichardE | 0:5fa232ee5fdf | 42 | UInt8 LevelNumber; |
RichardE | 0:5fa232ee5fdf | 43 | |
RichardE | 0:5fa232ee5fdf | 44 | /***************/ |
RichardE | 0:5fa232ee5fdf | 45 | /* CONSTRUCTOR */ |
RichardE | 0:5fa232ee5fdf | 46 | /***************/ |
RichardE | 0:5fa232ee5fdf | 47 | Level(); |
RichardE | 0:5fa232ee5fdf | 48 | |
RichardE | 0:5fa232ee5fdf | 49 | /**************/ |
RichardE | 0:5fa232ee5fdf | 50 | /* DESTRUCTOR */ |
RichardE | 0:5fa232ee5fdf | 51 | /**************/ |
RichardE | 0:5fa232ee5fdf | 52 | virtual ~Level(); |
RichardE | 0:5fa232ee5fdf | 53 | |
RichardE | 0:5fa232ee5fdf | 54 | /************************/ |
RichardE | 0:5fa232ee5fdf | 55 | /* SET HIGH SCORE TABLE */ |
RichardE | 0:5fa232ee5fdf | 56 | /************************/ |
RichardE | 0:5fa232ee5fdf | 57 | // Pass pointer to EEPROM in e. |
RichardE | 0:5fa232ee5fdf | 58 | void SetHighScores( HighScoreTable *hst ) { |
RichardE | 0:5fa232ee5fdf | 59 | highScores = hst; |
RichardE | 0:5fa232ee5fdf | 60 | } |
RichardE | 1:dfd5eaaf96a3 | 61 | |
RichardE | 1:dfd5eaaf96a3 | 62 | /*************************************************/ |
RichardE | 1:dfd5eaaf96a3 | 63 | /* SET GAMEDUINO ON WHICH GRAPHICS WILL BE DRAWN */ |
RichardE | 1:dfd5eaaf96a3 | 64 | /*************************************************/ |
RichardE | 1:dfd5eaaf96a3 | 65 | // Pass pointer to a Gameduino. |
RichardE | 1:dfd5eaaf96a3 | 66 | void SetGameduino( Gameduino *g ) { |
RichardE | 1:dfd5eaaf96a3 | 67 | gd = g; |
RichardE | 1:dfd5eaaf96a3 | 68 | } |
RichardE | 1:dfd5eaaf96a3 | 69 | |
RichardE | 0:5fa232ee5fdf | 70 | /***************************************/ |
RichardE | 0:5fa232ee5fdf | 71 | /* SET PLAYER WHO IS PLAYING THE LEVEL */ |
RichardE | 0:5fa232ee5fdf | 72 | /***************************************/ |
RichardE | 0:5fa232ee5fdf | 73 | // Pass pointer to player in p. |
RichardE | 0:5fa232ee5fdf | 74 | void SetPlayer( PlayerObject *p ) { |
RichardE | 0:5fa232ee5fdf | 75 | player = p; |
RichardE | 0:5fa232ee5fdf | 76 | } |
RichardE | 0:5fa232ee5fdf | 77 | |
RichardE | 0:5fa232ee5fdf | 78 | // Enumeration of reasons why level ended. |
RichardE | 0:5fa232ee5fdf | 79 | enum LevelExitCode { |
RichardE | 0:5fa232ee5fdf | 80 | Completed, // level was completed |
RichardE | 0:5fa232ee5fdf | 81 | GameOver, // player has no more lives |
RichardE | 0:5fa232ee5fdf | 82 | }; |
RichardE | 0:5fa232ee5fdf | 83 | |
RichardE | 0:5fa232ee5fdf | 84 | /**************/ |
RichardE | 0:5fa232ee5fdf | 85 | /* PLAY LEVEL */ |
RichardE | 0:5fa232ee5fdf | 86 | /**************/ |
RichardE | 0:5fa232ee5fdf | 87 | // Returns code indicating how level ended. |
RichardE | 0:5fa232ee5fdf | 88 | virtual LevelExitCode Play( void ) = 0; |
RichardE | 0:5fa232ee5fdf | 89 | |
RichardE | 0:5fa232ee5fdf | 90 | protected : |
RichardE | 0:5fa232ee5fdf | 91 | |
RichardE | 1:dfd5eaaf96a3 | 92 | // Pointer to high score table. |
RichardE | 1:dfd5eaaf96a3 | 93 | HighScoreTable *highScores; |
RichardE | 0:5fa232ee5fdf | 94 | |
RichardE | 1:dfd5eaaf96a3 | 95 | // Gameduino on which level is played. |
RichardE | 1:dfd5eaaf96a3 | 96 | Gameduino *gd; |
RichardE | 1:dfd5eaaf96a3 | 97 | |
RichardE | 0:5fa232ee5fdf | 98 | // Player playing the level. |
RichardE | 4:673eb9735d44 | 99 | PlayerObject *player; |
RichardE | 0:5fa232ee5fdf | 100 | |
RichardE | 0:5fa232ee5fdf | 101 | /*************/ |
RichardE | 0:5fa232ee5fdf | 102 | /* PLAY LOOP */ |
RichardE | 0:5fa232ee5fdf | 103 | /*************/ |
RichardE | 0:5fa232ee5fdf | 104 | // Returns code indicating how level ended. |
RichardE | 0:5fa232ee5fdf | 105 | // This method should be called from the Play method after the |
RichardE | 0:5fa232ee5fdf | 106 | // level data has been initialised and the return value returned |
RichardE | 0:5fa232ee5fdf | 107 | // by the Play method. |
RichardE | 0:5fa232ee5fdf | 108 | virtual LevelExitCode PlayLoop( void ) = 0; |
RichardE | 0:5fa232ee5fdf | 109 | |
RichardE | 0:5fa232ee5fdf | 110 | }; |
RichardE | 0:5fa232ee5fdf | 111 | |
RichardE | 0:5fa232ee5fdf | 112 | #endif |
RichardE | 0:5fa232ee5fdf | 113 | |
RichardE | 0:5fa232ee5fdf | 114 | /* END of Level.h */ |
RichardE | 0:5fa232ee5fdf | 115 |