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

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?

UserRevisionLine numberNew 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