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.
Menu/Menu.h@68:bb1650c657ef, 2020-05-21 (annotated)
- Committer:
- evanso
- Date:
- Thu May 21 22:46:23 2020 +0000
- Revision:
- 68:bb1650c657ef
- Parent:
- 65:daa792a09e1f
- Child:
- 69:753ba27325ce
Added sprites file to store letter for the title screen and arrows for menus. Also added a time to stop double-button presses.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| evanso | 40:71f947254fda | 1 | #ifndef MENU_H |
| evanso | 40:71f947254fda | 2 | #define MENU_H |
| evanso | 40:71f947254fda | 3 | |
| evanso | 40:71f947254fda | 4 | // Included libraries ---------------------------------------------------------- |
| evanso | 40:71f947254fda | 5 | #include "mbed.h" |
| evanso | 40:71f947254fda | 6 | #include "N5110.h" |
| evanso | 40:71f947254fda | 7 | #include "Gamepad.h" |
| evanso | 68:bb1650c657ef | 8 | #include "Sprites.h" |
| evanso | 40:71f947254fda | 9 | |
| evanso | 40:71f947254fda | 10 | /** Enum for diffent menu parts*/ |
| evanso | 41:5959256f4aab | 11 | enum MenuParts {play, settings, saved_games, main_menu}; |
| evanso | 40:71f947254fda | 12 | |
| evanso | 40:71f947254fda | 13 | /** scroll_orderStruct |
| evanso | 40:71f947254fda | 14 | * @brief Struct hold differnt menu orders |
| evanso | 40:71f947254fda | 15 | */ |
| evanso | 40:71f947254fda | 16 | struct scroll_order { |
| evanso | 40:71f947254fda | 17 | MenuParts part_next; /**< Next Menu part */ |
| evanso | 40:71f947254fda | 18 | MenuParts part_displayed; /**< Displayed menu part */ |
| evanso | 40:71f947254fda | 19 | }; |
| evanso | 40:71f947254fda | 20 | |
| evanso | 40:71f947254fda | 21 | /** Explosion class |
| evanso | 40:71f947254fda | 22 | * @brief Selects and draws differnt menu parts |
| evanso | 40:71f947254fda | 23 | * @author Benjamin Evans, University of Leeds |
| evanso | 40:71f947254fda | 24 | * @date May 2020 |
| evanso | 40:71f947254fda | 25 | */ |
| evanso | 40:71f947254fda | 26 | class Menu{ |
| evanso | 40:71f947254fda | 27 | public: |
| evanso | 40:71f947254fda | 28 | /** Constructor */ |
| evanso | 40:71f947254fda | 29 | Menu(); |
| evanso | 40:71f947254fda | 30 | |
| evanso | 40:71f947254fda | 31 | /** Destructor */ |
| evanso | 40:71f947254fda | 32 | ~Menu(); |
| evanso | 40:71f947254fda | 33 | |
| evanso | 40:71f947254fda | 34 | /** Initalises Menu*/ |
| evanso | 40:71f947254fda | 35 | void init(); |
| evanso | 40:71f947254fda | 36 | |
| evanso | 40:71f947254fda | 37 | /** sets the current menu part to the displayed when a is pressed |
| evanso | 65:daa792a09e1f | 38 | * @param pressed @details Buttom A pressed |
| evanso | 40:71f947254fda | 39 | */ |
| evanso | 65:daa792a09e1f | 40 | void select_part(bool pressed); |
| evanso | 40:71f947254fda | 41 | |
| evanso | 40:71f947254fda | 42 | /** Draws the name of the part that is in the middle |
| evanso | 40:71f947254fda | 43 | * @param lcd @details N5110 object |
| evanso | 40:71f947254fda | 44 | */ |
| evanso | 40:71f947254fda | 45 | void draw_part(N5110 &lcd); |
| evanso | 40:71f947254fda | 46 | |
| evanso | 40:71f947254fda | 47 | /** Scrolls through the diffent menu parts |
| evanso | 40:71f947254fda | 48 | * @param d_ @details Direction of joystick |
| evanso | 40:71f947254fda | 49 | */ |
| evanso | 65:daa792a09e1f | 50 | void menu_scroll(Direction d_); |
| evanso | 41:5959256f4aab | 51 | |
| evanso | 41:5959256f4aab | 52 | // Accessors and mutators -------------------------------------------------- |
| evanso | 41:5959256f4aab | 53 | |
| evanso | 41:5959256f4aab | 54 | /** Gets the current menu part that is selected |
| evanso | 41:5959256f4aab | 55 | * @return current_menu_part_ |
| evanso | 41:5959256f4aab | 56 | */ |
| evanso | 41:5959256f4aab | 57 | MenuParts get_current_menu_part(); |
| evanso | 40:71f947254fda | 58 | |
| evanso | 68:bb1650c657ef | 59 | private: |
| evanso | 68:bb1650c657ef | 60 | // Function prototypes ----------------------------------------------------- |
| evanso | 68:bb1650c657ef | 61 | |
| evanso | 68:bb1650c657ef | 62 | void title_screen(N5110 &lcd); |
| evanso | 40:71f947254fda | 63 | |
| evanso | 40:71f947254fda | 64 | // Varibles ---------------------------------------------------------------- |
| evanso | 40:71f947254fda | 65 | |
| evanso | 40:71f947254fda | 66 | /** The part of the menu that is displayed */ |
| evanso | 40:71f947254fda | 67 | MenuParts displayed_menu_part_; |
| evanso | 40:71f947254fda | 68 | |
| evanso | 43:d43759dbddb9 | 69 | /** The part of the menu that is currently selected and in */ |
| evanso | 40:71f947254fda | 70 | MenuParts current_menu_part_; |
| evanso | 40:71f947254fda | 71 | }; |
| evanso | 40:71f947254fda | 72 | #endif |