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:
Sat Jun 15 19:27:36 2013 +0000
Revision:
16:d0b142ba4362
Parent:
15:d8ea0c7b7e64
Child:
17:194789db2215
Entering of high scores nearly there. Just requires code to allow you to backspace and confirm when you have finished.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardE 0:5fa232ee5fdf 1 /*
RichardE 0:5fa232ee5fdf 2 * SOURCE FILE : HighScoreEntry.h
RichardE 0:5fa232ee5fdf 3 *
RichardE 0:5fa232ee5fdf 4 * Definition of class HighScoreEntry.
RichardE 0:5fa232ee5fdf 5 * Routine to allow player to enter their name using joysticks.
RichardE 0:5fa232ee5fdf 6 *
RichardE 0:5fa232ee5fdf 7 */
RichardE 0:5fa232ee5fdf 8
RichardE 0:5fa232ee5fdf 9 #ifndef HighScoreEntryDefined
RichardE 0:5fa232ee5fdf 10
RichardE 0:5fa232ee5fdf 11 #define HighScoreEntryDefined
RichardE 0:5fa232ee5fdf 12
RichardE 0:5fa232ee5fdf 13 #include "Types.h"
RichardE 4:673eb9735d44 14 #include "PanelControls.h" // for reading panel controls.
RichardE 0:5fa232ee5fdf 15 #include "PlayerName.h"
RichardE 4:673eb9735d44 16 #include "Gameduino.h"
RichardE 15:d8ea0c7b7e64 17 #include "FieldGrid.h" // grid around which cursor moves
RichardE 0:5fa232ee5fdf 18
RichardE 0:5fa232ee5fdf 19 class HighScoreEntry {
RichardE 0:5fa232ee5fdf 20
RichardE 0:5fa232ee5fdf 21 public :
RichardE 0:5fa232ee5fdf 22
RichardE 0:5fa232ee5fdf 23 /***************/
RichardE 0:5fa232ee5fdf 24 /* CONSTRUCTOR */
RichardE 0:5fa232ee5fdf 25 /***************/
RichardE 0:5fa232ee5fdf 26 HighScoreEntry();
RichardE 0:5fa232ee5fdf 27
RichardE 0:5fa232ee5fdf 28 /**************/
RichardE 0:5fa232ee5fdf 29 /* DESTRUCTOR */
RichardE 0:5fa232ee5fdf 30 /**************/
RichardE 0:5fa232ee5fdf 31 virtual ~HighScoreEntry();
RichardE 0:5fa232ee5fdf 32
RichardE 0:5fa232ee5fdf 33 /*********************/
RichardE 0:5fa232ee5fdf 34 /* GET A PLAYER NAME */
RichardE 0:5fa232ee5fdf 35 /*********************/
RichardE 0:5fa232ee5fdf 36 // Pass pointer to place to store name in name.
RichardE 0:5fa232ee5fdf 37 // Pass pointer to controls to read in controls.
RichardE 4:673eb9735d44 38 // Pass pointer to Gameduino to display on in gd.
RichardE 4:673eb9735d44 39 void GetName( PlayerName *name, PanelControls *controls, Gameduino *gd );
RichardE 0:5fa232ee5fdf 40
RichardE 0:5fa232ee5fdf 41 private :
RichardE 0:5fa232ee5fdf 42
RichardE 16:d0b142ba4362 43 // Index of character being modified in the name.
RichardE 16:d0b142ba4362 44 UInt8 charIndex;
RichardE 16:d0b142ba4362 45
RichardE 16:d0b142ba4362 46 // Grid row and column number for cursor.
RichardE 16:d0b142ba4362 47 UInt8 cursorRow, cursorColumn;
RichardE 16:d0b142ba4362 48
RichardE 15:d8ea0c7b7e64 49 // Grid around which cursor moves.
RichardE 15:d8ea0c7b7e64 50 FieldGrid grid;
RichardE 15:d8ea0c7b7e64 51
RichardE 15:d8ea0c7b7e64 52 /*******************/
RichardE 15:d8ea0c7b7e64 53 /* INITIALISE GRID */
RichardE 15:d8ea0c7b7e64 54 /*******************/
RichardE 15:d8ea0c7b7e64 55 void InitialiseGrid( void );
RichardE 15:d8ea0c7b7e64 56
RichardE 0:5fa232ee5fdf 57 /*********************/
RichardE 0:5fa232ee5fdf 58 /* WAIT FOR CONTROLS */
RichardE 0:5fa232ee5fdf 59 /*********************/
RichardE 4:673eb9735d44 60 // Pass pointer to Gameduino to display on in gd.
RichardE 0:5fa232ee5fdf 61 // Pass pointer to controls to read in controls.
RichardE 0:5fa232ee5fdf 62 // Pass true in waitActivate to wait for a control to be used.
RichardE 0:5fa232ee5fdf 63 // Pass false to wait for release.
RichardE 4:673eb9735d44 64 void WaitControls( Gameduino *gd, PanelControls *controls, bool waitActivate );
RichardE 0:5fa232ee5fdf 65
RichardE 0:5fa232ee5fdf 66 /*******************/
RichardE 0:5fa232ee5fdf 67 /* DRAW THE SCREEN */
RichardE 0:5fa232ee5fdf 68 /*******************/
RichardE 4:673eb9735d44 69 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 70 // Pass player name in name.
RichardE 16:d0b142ba4362 71 void DrawScreen( Gameduino *gd, PlayerName *name );
RichardE 0:5fa232ee5fdf 72
RichardE 14:46a353b2a8e8 73 /***************************/
RichardE 14:46a353b2a8e8 74 /* DRAW THE CHARACTER GRID */
RichardE 14:46a353b2a8e8 75 /***************************/
RichardE 14:46a353b2a8e8 76 // Pass pointer to Gameduino to draw on in gd.
RichardE 14:46a353b2a8e8 77 void DrawGrid( Gameduino *gd );
RichardE 14:46a353b2a8e8 78
RichardE 0:5fa232ee5fdf 79 /********************************/
RichardE 0:5fa232ee5fdf 80 /* DRAW THE NAME AND THE CURSOR */
RichardE 0:5fa232ee5fdf 81 /********************************/
RichardE 4:673eb9735d44 82 // Pass pointer to Gameduino to display on in gd.
RichardE 0:5fa232ee5fdf 83 // Pass player name in name.
RichardE 4:673eb9735d44 84 void DrawName( Gameduino *gd, PlayerName *name );
RichardE 0:5fa232ee5fdf 85
RichardE 0:5fa232ee5fdf 86 /********************/
RichardE 0:5fa232ee5fdf 87 /* UPDATE ANIMATION */
RichardE 0:5fa232ee5fdf 88 /********************/
RichardE 4:673eb9735d44 89 // Pass pointer to Gameduino to display on in gd.
RichardE 4:673eb9735d44 90 void Animate( Gameduino *gd );
RichardE 0:5fa232ee5fdf 91
RichardE 16:d0b142ba4362 92 /*******************/
RichardE 16:d0b142ba4362 93 /* WIPE THE CURSOR */
RichardE 16:d0b142ba4362 94 /*******************/
RichardE 16:d0b142ba4362 95 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 96 // Pass cell to draw in cell.
RichardE 16:d0b142ba4362 97 void WipeCursor( Gameduino *gd, FieldCell *cell );
RichardE 16:d0b142ba4362 98
RichardE 16:d0b142ba4362 99 /*******************/
RichardE 16:d0b142ba4362 100 /* DRAW THE CURSOR */
RichardE 16:d0b142ba4362 101 /*******************/
RichardE 16:d0b142ba4362 102 // Pass pointer to Gameduino to display on in gd.
RichardE 16:d0b142ba4362 103 // Pass cell to draw in cell.
RichardE 16:d0b142ba4362 104 void DrawCursor( Gameduino *gd, FieldCell *cell );
RichardE 16:d0b142ba4362 105
RichardE 16:d0b142ba4362 106 /**************************/
RichardE 16:d0b142ba4362 107 /* VALIDATE CURSOR COLUMN */
RichardE 16:d0b142ba4362 108 /**************************/
RichardE 16:d0b142ba4362 109 // If cursor column is beyond end of row then forces it back.
RichardE 16:d0b142ba4362 110 void ValidateCursorColumn( void );
RichardE 16:d0b142ba4362 111
RichardE 0:5fa232ee5fdf 112 };
RichardE 0:5fa232ee5fdf 113
RichardE 0:5fa232ee5fdf 114 #endif
RichardE 0:5fa232ee5fdf 115
RichardE 0:5fa232ee5fdf 116 /* END of HighScoreEntry.h */
RichardE 0:5fa232ee5fdf 117