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
HighScoreEntry.h@18:70190f956a24, 2013-06-17 (annotated)
- Committer:
- RichardE
- Date:
- Mon Jun 17 15:10:43 2013 +0000
- Revision:
- 18:70190f956a24
- Parent:
- 17:194789db2215
Improved response to button 1 when entering high scores (HighScoreEntry.cpp).
Who changed what in which revision?
User | Revision | Line number | New 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 | 17:194789db2215 | 51 | |
RichardE | 17:194789db2215 | 52 | // Some text. |
RichardE | 17:194789db2215 | 53 | static const char textDelete[]; |
RichardE | 17:194789db2215 | 54 | static const char textEnter[]; |
RichardE | 17:194789db2215 | 55 | |
RichardE | 15:d8ea0c7b7e64 | 56 | /*******************/ |
RichardE | 15:d8ea0c7b7e64 | 57 | /* INITIALISE GRID */ |
RichardE | 15:d8ea0c7b7e64 | 58 | /*******************/ |
RichardE | 15:d8ea0c7b7e64 | 59 | void InitialiseGrid( void ); |
RichardE | 15:d8ea0c7b7e64 | 60 | |
RichardE | 17:194789db2215 | 61 | /***************************************/ |
RichardE | 17:194789db2215 | 62 | /* ADD A CELL CONTAINING TEXT TO A ROW */ |
RichardE | 17:194789db2215 | 63 | /***************************************/ |
RichardE | 17:194789db2215 | 64 | // Pass character coordinates in x and y. These will be updated. |
RichardE | 17:194789db2215 | 65 | // Pass row to which cells should be added in row. |
RichardE | 17:194789db2215 | 66 | // Pass text which is to be contained in cell in text. |
RichardE | 17:194789db2215 | 67 | void AddTextCell( UInt8 &x, UInt8 &y, FieldRow *row, const char *text ); |
RichardE | 17:194789db2215 | 68 | |
RichardE | 17:194789db2215 | 69 | /************************************************************************/ |
RichardE | 17:194789db2215 | 70 | /* PERFORM A SPECIAL FUNCTION TRIGGERED FROM A CELL ON LAST ROW OF GRID */ |
RichardE | 17:194789db2215 | 71 | /************************************************************************/ |
RichardE | 17:194789db2215 | 72 | // Pass pointer to Gameduino to draw on in gd. |
RichardE | 17:194789db2215 | 73 | // Pass function number in funcNum (this is the cursor column number). |
RichardE | 17:194789db2215 | 74 | // Pass player name in name. |
RichardE | 17:194789db2215 | 75 | // Pass reference to done flag in done. |
RichardE | 17:194789db2215 | 76 | void SpecialFunction( Gameduino *gd, UInt8 funcNum, PlayerName *name, bool &done ); |
RichardE | 17:194789db2215 | 77 | |
RichardE | 0:5fa232ee5fdf | 78 | /*********************/ |
RichardE | 0:5fa232ee5fdf | 79 | /* WAIT FOR CONTROLS */ |
RichardE | 0:5fa232ee5fdf | 80 | /*********************/ |
RichardE | 4:673eb9735d44 | 81 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 0:5fa232ee5fdf | 82 | // Pass pointer to controls to read in controls. |
RichardE | 0:5fa232ee5fdf | 83 | // Pass true in waitActivate to wait for a control to be used. |
RichardE | 0:5fa232ee5fdf | 84 | // Pass false to wait for release. |
RichardE | 4:673eb9735d44 | 85 | void WaitControls( Gameduino *gd, PanelControls *controls, bool waitActivate ); |
RichardE | 0:5fa232ee5fdf | 86 | |
RichardE | 0:5fa232ee5fdf | 87 | /*******************/ |
RichardE | 0:5fa232ee5fdf | 88 | /* DRAW THE SCREEN */ |
RichardE | 0:5fa232ee5fdf | 89 | /*******************/ |
RichardE | 4:673eb9735d44 | 90 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 16:d0b142ba4362 | 91 | // Pass player name in name. |
RichardE | 16:d0b142ba4362 | 92 | void DrawScreen( Gameduino *gd, PlayerName *name ); |
RichardE | 0:5fa232ee5fdf | 93 | |
RichardE | 14:46a353b2a8e8 | 94 | /***************************/ |
RichardE | 14:46a353b2a8e8 | 95 | /* DRAW THE CHARACTER GRID */ |
RichardE | 14:46a353b2a8e8 | 96 | /***************************/ |
RichardE | 14:46a353b2a8e8 | 97 | // Pass pointer to Gameduino to draw on in gd. |
RichardE | 14:46a353b2a8e8 | 98 | void DrawGrid( Gameduino *gd ); |
RichardE | 14:46a353b2a8e8 | 99 | |
RichardE | 0:5fa232ee5fdf | 100 | /********************************/ |
RichardE | 0:5fa232ee5fdf | 101 | /* DRAW THE NAME AND THE CURSOR */ |
RichardE | 0:5fa232ee5fdf | 102 | /********************************/ |
RichardE | 4:673eb9735d44 | 103 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 0:5fa232ee5fdf | 104 | // Pass player name in name. |
RichardE | 4:673eb9735d44 | 105 | void DrawName( Gameduino *gd, PlayerName *name ); |
RichardE | 0:5fa232ee5fdf | 106 | |
RichardE | 0:5fa232ee5fdf | 107 | /********************/ |
RichardE | 0:5fa232ee5fdf | 108 | /* UPDATE ANIMATION */ |
RichardE | 0:5fa232ee5fdf | 109 | /********************/ |
RichardE | 4:673eb9735d44 | 110 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 4:673eb9735d44 | 111 | void Animate( Gameduino *gd ); |
RichardE | 0:5fa232ee5fdf | 112 | |
RichardE | 16:d0b142ba4362 | 113 | /*******************/ |
RichardE | 16:d0b142ba4362 | 114 | /* WIPE THE CURSOR */ |
RichardE | 16:d0b142ba4362 | 115 | /*******************/ |
RichardE | 16:d0b142ba4362 | 116 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 16:d0b142ba4362 | 117 | // Pass cell to draw in cell. |
RichardE | 16:d0b142ba4362 | 118 | void WipeCursor( Gameduino *gd, FieldCell *cell ); |
RichardE | 16:d0b142ba4362 | 119 | |
RichardE | 16:d0b142ba4362 | 120 | /*******************/ |
RichardE | 16:d0b142ba4362 | 121 | /* DRAW THE CURSOR */ |
RichardE | 16:d0b142ba4362 | 122 | /*******************/ |
RichardE | 16:d0b142ba4362 | 123 | // Pass pointer to Gameduino to display on in gd. |
RichardE | 16:d0b142ba4362 | 124 | // Pass cell to draw in cell. |
RichardE | 16:d0b142ba4362 | 125 | void DrawCursor( Gameduino *gd, FieldCell *cell ); |
RichardE | 16:d0b142ba4362 | 126 | |
RichardE | 16:d0b142ba4362 | 127 | /**************************/ |
RichardE | 16:d0b142ba4362 | 128 | /* VALIDATE CURSOR COLUMN */ |
RichardE | 16:d0b142ba4362 | 129 | /**************************/ |
RichardE | 16:d0b142ba4362 | 130 | // If cursor column is beyond end of row then forces it back. |
RichardE | 16:d0b142ba4362 | 131 | void ValidateCursorColumn( void ); |
RichardE | 16:d0b142ba4362 | 132 | |
RichardE | 0:5fa232ee5fdf | 133 | }; |
RichardE | 0:5fa232ee5fdf | 134 | |
RichardE | 0:5fa232ee5fdf | 135 | #endif |
RichardE | 0:5fa232ee5fdf | 136 | |
RichardE | 0:5fa232ee5fdf | 137 | /* END of HighScoreEntry.h */ |
RichardE | 0:5fa232ee5fdf | 138 |