Mochu Yao explorer game
Dependencies: mbed
menu/Menu.h@23:7be9701fc1b8, 2020-04-28 (annotated)
- Committer:
- el17my
- Date:
- Tue Apr 28 17:19:55 2020 +0000
- Revision:
- 23:7be9701fc1b8
- Parent:
- 22:f8ba0ab7465c
- Child:
- 26:4d193529b447
4.29
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el17my | 21:349c70c8a7de | 1 | #ifndef MENU_H |
el17my | 21:349c70c8a7de | 2 | #define MENU_H |
el17my | 21:349c70c8a7de | 3 | |
el17my | 21:349c70c8a7de | 4 | #include "mbed.h" |
el17my | 21:349c70c8a7de | 5 | #include "N5110.h" |
el17my | 21:349c70c8a7de | 6 | #include "Gamepad.h" |
el17my | 21:349c70c8a7de | 7 | #include "Gameengine.h" |
el17my | 21:349c70c8a7de | 8 | //*using the UpDown_counter example in class 201. |
el17my | 21:349c70c8a7de | 9 | struct State { |
el17my | 23:7be9701fc1b8 | 10 | int output; |
el17my | 23:7be9701fc1b8 | 11 | int next_state[4]; |
el17my | 21:349c70c8a7de | 12 | }; |
el17my | 21:349c70c8a7de | 13 | |
el17my | 21:349c70c8a7de | 14 | /** Menu class |
el17my | 23:7be9701fc1b8 | 15 | * @ 1 build three page to choose |
el17my | 23:7be9701fc1b8 | 16 | * @ 2 build a good welcome_page |
el17my | 23:7be9701fc1b8 | 17 | * @ 3 connect with the gamepad and makesure the game is working |
el17my | 23:7be9701fc1b8 | 18 | * @ date April 27th 2020 |
el17my | 23:7be9701fc1b8 | 19 | * @ author Yaomochu |
el17my | 21:349c70c8a7de | 20 | |
el17my | 23:7be9701fc1b8 | 21 | * @code |
el17my | 21:349c70c8a7de | 22 | |
el17my | 21:349c70c8a7de | 23 | #include "N5110.h" |
el17my | 21:349c70c8a7de | 24 | #include "Gamepad.h" |
el17my | 21:349c70c8a7de | 25 | #include "mbed.h" |
el17my | 21:349c70c8a7de | 26 | #include "menu.h" |
el17my | 21:349c70c8a7de | 27 | |
el17my | 21:349c70c8a7de | 28 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
el17my | 21:349c70c8a7de | 29 | Gamepad gamepad; |
el17my | 21:349c70c8a7de | 30 | menu _menu; |
el17my | 21:349c70c8a7de | 31 | |
el17my | 21:349c70c8a7de | 32 | int main() { |
el17my | 21:349c70c8a7de | 33 | gamepad.init(); |
el17my | 21:349c70c8a7de | 34 | _menu.init(); |
el17my | 21:349c70c8a7de | 35 | lcd.init(); |
el17my | 21:349c70c8a7de | 36 | lcd.normalMode(); |
el17my | 21:349c70c8a7de | 37 | lcd.setBrightness(0.5); |
el17my | 21:349c70c8a7de | 38 | while(1) { |
el17my | 21:349c70c8a7de | 39 | |
el17my | 21:349c70c8a7de | 40 | // clear, refresh lcd and run the menu. |
el17my | 21:349c70c8a7de | 41 | lcd.clear(); |
el17my | 21:349c70c8a7de | 42 | _menu.run_engine(lcd, gamepad); |
el17my | 21:349c70c8a7de | 43 | lcd.refresh(); |
el17my | 21:349c70c8a7de | 44 | wait(0.01); |
el17my | 21:349c70c8a7de | 45 | } |
el17my | 21:349c70c8a7de | 46 | } |
el17my | 21:349c70c8a7de | 47 | |
el17my | 23:7be9701fc1b8 | 48 | * @endcode |
el17my | 21:349c70c8a7de | 49 | */ |
el17my | 21:349c70c8a7de | 50 | |
el17my | 21:349c70c8a7de | 51 | class Menu { |
el17my | 21:349c70c8a7de | 52 | public: |
el17my | 21:349c70c8a7de | 53 | Menu(); |
el17my | 21:349c70c8a7de | 54 | ~Menu(); |
el17my | 21:349c70c8a7de | 55 | void init(); |
el17my | 22:f8ba0ab7465c | 56 | void run_engine(N5110 &lcd, Gamepad &gamepad); |
el17my | 22:f8ba0ab7465c | 57 | void run_game(N5110 &lcd, Gamepad &gamepad); |
el17my | 22:f8ba0ab7465c | 58 | |
el17my | 22:f8ba0ab7465c | 59 | |
el17my | 22:f8ba0ab7465c | 60 | private: |
el17my | 21:349c70c8a7de | 61 | void display_page1(N5110 &lcd, Gamepad &gamepad); |
el17my | 21:349c70c8a7de | 62 | void display_page2(N5110 &lcd, Gamepad &gamepad); |
el17my | 22:f8ba0ab7465c | 63 | void get_output(N5110 &lcd, Gamepad &gamepad); |
el17my | 21:349c70c8a7de | 64 | void get_input(bool start, bool back, bool b); |
el17my | 21:349c70c8a7de | 65 | Gameengine _game_engine; |
el17my | 21:349c70c8a7de | 66 | int _input_value; |
el17my | 21:349c70c8a7de | 67 | int _output; |
el17my | 21:349c70c8a7de | 68 | int _state; |
el17my | 21:349c70c8a7de | 69 | }; |
el17my | 21:349c70c8a7de | 70 | #endif |
el17my | 21:349c70c8a7de | 71 | |
el17my | 21:349c70c8a7de | 72 |