Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed N5110 ShiftReg PinDetect
State.h@4:d6661b976359, 2015-05-01 (annotated)
- Committer:
- Siriagus
- Date:
- Fri May 01 00:38:59 2015 +0000
- Revision:
- 4:d6661b976359
- Parent:
- 1:0cfe2255092a
- Child:
- 5:100d960fc6d5
Started rewriting the main finite state machine - design in progress
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Siriagus | 1:0cfe2255092a | 1 | #ifndef STATE_H |
Siriagus | 1:0cfe2255092a | 2 | #define STATE_H |
Siriagus | 1:0cfe2255092a | 3 | |
Siriagus | 4:d6661b976359 | 4 | #include "N5110.h" |
Siriagus | 4:d6661b976359 | 5 | #include "PinDetect.h" |
Siriagus | 4:d6661b976359 | 6 | #include "InputManager.h" |
Siriagus | 4:d6661b976359 | 7 | |
Siriagus | 4:d6661b976359 | 8 | class StateManager; |
Siriagus | 4:d6661b976359 | 9 | |
Siriagus | 4:d6661b976359 | 10 | // List of main states in the game |
Siriagus | 4:d6661b976359 | 11 | enum MainState {MAIN_MENU, GAME, SUBMIT_HIGHSCORE, GAME_OVER}; |
Siriagus | 4:d6661b976359 | 12 | |
Siriagus | 4:d6661b976359 | 13 | // Each main state is a derived from the State class. |
Siriagus | 1:0cfe2255092a | 14 | class State |
Siriagus | 1:0cfe2255092a | 15 | { |
Siriagus | 1:0cfe2255092a | 16 | public: |
Siriagus | 4:d6661b976359 | 17 | |
Siriagus | 4:d6661b976359 | 18 | State(StateManager* fsm, N5110 *lcd, InputManager* input) |
Siriagus | 4:d6661b976359 | 19 | : fsm(fsm), lcd(lcd), input(input){} |
Siriagus | 4:d6661b976359 | 20 | |
Siriagus | 4:d6661b976359 | 21 | virtual void update() = 0; |
Siriagus | 4:d6661b976359 | 22 | virtual void render() = 0; |
Siriagus | 4:d6661b976359 | 23 | |
Siriagus | 4:d6661b976359 | 24 | private: |
Siriagus | 4:d6661b976359 | 25 | void changeState(MainState newState); |
Siriagus | 4:d6661b976359 | 26 | |
Siriagus | 4:d6661b976359 | 27 | protected: |
Siriagus | 4:d6661b976359 | 28 | N5110 *lcd; |
Siriagus | 4:d6661b976359 | 29 | InputManager *input; |
Siriagus | 4:d6661b976359 | 30 | |
Siriagus | 4:d6661b976359 | 31 | private: |
Siriagus | 4:d6661b976359 | 32 | StateManager *fsm; |
Siriagus | 4:d6661b976359 | 33 | |
Siriagus | 1:0cfe2255092a | 34 | }; |
Siriagus | 1:0cfe2255092a | 35 | |
Siriagus | 1:0cfe2255092a | 36 | #endif |