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
MainMenu.h@12:8178fad5e660, 2015-05-08 (annotated)
- Committer:
- Siriagus
- Date:
- Fri May 08 23:51:26 2015 +0000
- Revision:
- 12:8178fad5e660
- Parent:
- 10:f2488a0ecab7
- Child:
- 17:d6a3b29cab31
Added template drawImage function which can draw images of any dimension.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Siriagus | 5:100d960fc6d5 | 1 | #ifndef MAIN_MENU_H |
Siriagus | 5:100d960fc6d5 | 2 | #define MAIN_MENU_H |
Siriagus | 5:100d960fc6d5 | 3 | |
Siriagus | 12:8178fad5e660 | 4 | /** @file MainMenu.h |
Siriagus | 12:8178fad5e660 | 5 | * @author Andreas Garmannslund |
Siriagus | 12:8178fad5e660 | 6 | * @date April 2015 |
Siriagus | 12:8178fad5e660 | 7 | */ |
Siriagus | 12:8178fad5e660 | 8 | |
Siriagus | 5:100d960fc6d5 | 9 | #include "State.h" |
Siriagus | 12:8178fad5e660 | 10 | #include "Resources.h" |
Siriagus | 5:100d960fc6d5 | 11 | |
Siriagus | 10:f2488a0ecab7 | 12 | /// State: Main Menu |
Siriagus | 5:100d960fc6d5 | 13 | class MainMenu : public State |
Siriagus | 5:100d960fc6d5 | 14 | { |
Siriagus | 5:100d960fc6d5 | 15 | public: |
Siriagus | 10:f2488a0ecab7 | 16 | /// Creates a new MainMenu object |
Siriagus | 5:100d960fc6d5 | 17 | MainMenu(StateManager* fsm, N5110 *lcd, InputManager* input) |
Siriagus | 5:100d960fc6d5 | 18 | : State(fsm, lcd, input) {init();} |
Siriagus | 5:100d960fc6d5 | 19 | |
Siriagus | 10:f2488a0ecab7 | 20 | virtual void update(float dt); /// Update logic |
Siriagus | 10:f2488a0ecab7 | 21 | virtual void render(); /// Draw MainMenu to screen |
Siriagus | 5:100d960fc6d5 | 22 | |
Siriagus | 5:100d960fc6d5 | 23 | private: |
Siriagus | 5:100d960fc6d5 | 24 | void init(); |
Siriagus | 10:f2488a0ecab7 | 25 | static void btnAPress(); /// Interrupt callback function when button A is pressed |
Siriagus | 10:f2488a0ecab7 | 26 | static void btnBPress(); /// Interrupt callback function when button B is pressed |
Siriagus | 10:f2488a0ecab7 | 27 | static void btnCPress(); /// Interrupt callback function when button C is pressed |
Siriagus | 6:edb48de563a9 | 28 | |
Siriagus | 6:edb48de563a9 | 29 | // Variables |
Siriagus | 6:edb48de563a9 | 30 | private: |
Siriagus | 10:f2488a0ecab7 | 31 | /// States for the main menu's internal finite state machine |
Siriagus | 10:f2488a0ecab7 | 32 | enum MenuState {SELECT_PLAY, SELECT_HIGHSCORES, SELECT_CONTROLS, LOAD_GAME, HIGHSCORES, CONTROLS}; |
Siriagus | 10:f2488a0ecab7 | 33 | static int currentState; /// Current state of the internal finite state machine |
Siriagus | 10:f2488a0ecab7 | 34 | |
Siriagus | 10:f2488a0ecab7 | 35 | /** Transition table for internal fsm |
Siriagus | 10:f2488a0ecab7 | 36 | * Each row corresponds to a state |
Siriagus | 10:f2488a0ecab7 | 37 | * Each column corresponds to the button pressed |
Siriagus | 10:f2488a0ecab7 | 38 | */ |
Siriagus | 10:f2488a0ecab7 | 39 | static const int MENU_FSM[6][3]; |
Siriagus | 5:100d960fc6d5 | 40 | }; |
Siriagus | 5:100d960fc6d5 | 41 | |
Siriagus | 5:100d960fc6d5 | 42 | #endif |