A complex 2D-dungeon game on LPC1768 in SWJTU-Leeds Joint School XJEL2645 project. Referenced from the framework contributed by https://os.mbed.com/users/Siriagus/code/SimplePlatformGame/
Dependencies: mbed N5110 ShiftReg PinDetect
StateManager.h@5:100d960fc6d5, 2015-05-01 (annotated)
- Committer:
- Siriagus
- Date:
- Fri May 01 09:10:23 2015 +0000
- Revision:
- 5:100d960fc6d5
- Parent:
- 4:d6661b976359
- Child:
- 7:678873947b29
Mostly finished State and StateManager class. Some additional work must be done when adding new main states.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Siriagus | 4:d6661b976359 | 1 | #ifndef STATE_MANAGER_H |
Siriagus | 4:d6661b976359 | 2 | #define STATE_MANAGER_H |
Siriagus | 4:d6661b976359 | 3 | |
Siriagus | 4:d6661b976359 | 4 | #include "State.h" |
Siriagus | 5:100d960fc6d5 | 5 | #include "MainMenu.h" |
Siriagus | 4:d6661b976359 | 6 | #include <map> |
Siriagus | 4:d6661b976359 | 7 | |
Siriagus | 4:d6661b976359 | 8 | // Main Finite State Machine - controls the flow between the main states |
Siriagus | 4:d6661b976359 | 9 | class StateManager |
Siriagus | 4:d6661b976359 | 10 | { |
Siriagus | 4:d6661b976359 | 11 | public: |
Siriagus | 4:d6661b976359 | 12 | StateManager(N5110 *lcd, InputManager* input) |
Siriagus | 4:d6661b976359 | 13 | : lcd(lcd), input(input){currentState = 0;} |
Siriagus | 5:100d960fc6d5 | 14 | ~StateManager() {if (currentState != 0) delete currentState;} |
Siriagus | 4:d6661b976359 | 15 | |
Siriagus | 4:d6661b976359 | 16 | void update(time_t dt); |
Siriagus | 4:d6661b976359 | 17 | void render(); |
Siriagus | 4:d6661b976359 | 18 | |
Siriagus | 4:d6661b976359 | 19 | void changeState(MainState newState); // Deletes the current main state and creates a new one |
Siriagus | 4:d6661b976359 | 20 | |
Siriagus | 4:d6661b976359 | 21 | private: |
Siriagus | 4:d6661b976359 | 22 | N5110 *lcd; |
Siriagus | 4:d6661b976359 | 23 | InputManager *input; |
Siriagus | 4:d6661b976359 | 24 | State* currentState; // Current state object |
Siriagus | 4:d6661b976359 | 25 | }; |
Siriagus | 4:d6661b976359 | 26 | |
Siriagus | 5:100d960fc6d5 | 27 | #endif |