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.
Dependencies: mbed
Menus/Menu.cpp@0:07c4fef6c0af, 2019-05-08 (annotated)
- Committer:
- jiaxinZHOU
- Date:
- Wed May 08 21:44:02 2019 +0000
- Revision:
- 0:07c4fef6c0af
- Child:
- 4:0f2006e9c8f8
1st edition
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jiaxinZHOU | 0:07c4fef6c0af | 1 | #include "Menu.h" |
jiaxinZHOU | 0:07c4fef6c0af | 2 | |
jiaxinZHOU | 0:07c4fef6c0af | 3 | Menu::Menu() { |
jiaxinZHOU | 0:07c4fef6c0af | 4 | |
jiaxinZHOU | 0:07c4fef6c0af | 5 | } |
jiaxinZHOU | 0:07c4fef6c0af | 6 | |
jiaxinZHOU | 0:07c4fef6c0af | 7 | Menu::~Menu() { |
jiaxinZHOU | 0:07c4fef6c0af | 8 | |
jiaxinZHOU | 0:07c4fef6c0af | 9 | } |
jiaxinZHOU | 0:07c4fef6c0af | 10 | |
jiaxinZHOU | 0:07c4fef6c0af | 11 | int Menu::input( int select,Gamepad &pad) |
jiaxinZHOU | 0:07c4fef6c0af | 12 | { |
jiaxinZHOU | 0:07c4fef6c0af | 13 | Direction d; |
jiaxinZHOU | 0:07c4fef6c0af | 14 | d = pad.get_direction(); |
jiaxinZHOU | 0:07c4fef6c0af | 15 | if(d == N) |
jiaxinZHOU | 0:07c4fef6c0af | 16 | { |
jiaxinZHOU | 0:07c4fef6c0af | 17 | select= select - 1; |
jiaxinZHOU | 0:07c4fef6c0af | 18 | } |
jiaxinZHOU | 0:07c4fef6c0af | 19 | |
jiaxinZHOU | 0:07c4fef6c0af | 20 | if (d == S) |
jiaxinZHOU | 0:07c4fef6c0af | 21 | { |
jiaxinZHOU | 0:07c4fef6c0af | 22 | select = select + 1; |
jiaxinZHOU | 0:07c4fef6c0af | 23 | } |
jiaxinZHOU | 0:07c4fef6c0af | 24 | return select; |
jiaxinZHOU | 0:07c4fef6c0af | 25 | } |
jiaxinZHOU | 0:07c4fef6c0af | 26 | |
jiaxinZHOU | 0:07c4fef6c0af | 27 | |
jiaxinZHOU | 0:07c4fef6c0af | 28 | void Menu::menus(N5110 &lcd, Gamepad &pad) |
jiaxinZHOU | 0:07c4fef6c0af | 29 | { |
jiaxinZHOU | 0:07c4fef6c0af | 30 | go_on = 0; |
jiaxinZHOU | 0:07c4fef6c0af | 31 | sel = 0; |
jiaxinZHOU | 0:07c4fef6c0af | 32 | while(go_on == 0) |
jiaxinZHOU | 0:07c4fef6c0af | 33 | { |
jiaxinZHOU | 0:07c4fef6c0af | 34 | sel = input(sel,pad); |
jiaxinZHOU | 0:07c4fef6c0af | 35 | wait_ms(200); |
jiaxinZHOU | 0:07c4fef6c0af | 36 | switch (sel) |
jiaxinZHOU | 0:07c4fef6c0af | 37 | { |
jiaxinZHOU | 0:07c4fef6c0af | 38 | case 0: |
jiaxinZHOU | 0:07c4fef6c0af | 39 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 40 | lcd.printString(" MENU ",0,0); |
jiaxinZHOU | 0:07c4fef6c0af | 41 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 42 | lcd.printString(">PLAY GAME",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 43 | lcd.printString("TUTORIAL",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 44 | lcd.printString("VERSION",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 45 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 46 | |
jiaxinZHOU | 0:07c4fef6c0af | 47 | if (pad.check_event(Gamepad::A_PRESSED)){ |
jiaxinZHOU | 0:07c4fef6c0af | 48 | go_on = 1; |
jiaxinZHOU | 0:07c4fef6c0af | 49 | } |
jiaxinZHOU | 0:07c4fef6c0af | 50 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 51 | |
jiaxinZHOU | 0:07c4fef6c0af | 52 | case 1: |
jiaxinZHOU | 0:07c4fef6c0af | 53 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 54 | lcd.printString(" MENU ",0,0); |
jiaxinZHOU | 0:07c4fef6c0af | 55 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 56 | lcd.printString("PLAY GAME",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 57 | lcd.printString(">TUTORIAL",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 58 | lcd.printString("VERSION",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 59 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 60 | |
jiaxinZHOU | 0:07c4fef6c0af | 61 | // either clicking joystick or pressing A selects function |
jiaxinZHOU | 0:07c4fef6c0af | 62 | if (pad.check_event(Gamepad::A_PRESSED)) |
jiaxinZHOU | 0:07c4fef6c0af | 63 | { |
jiaxinZHOU | 0:07c4fef6c0af | 64 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 65 | lcd.printString("PUSH JOYSTICK ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 66 | lcd.printString(" TO CTRL ",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 67 | lcd.printString(" DIRCTION ",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 68 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 69 | //printf("Direction = %i\n"); |
jiaxinZHOU | 0:07c4fef6c0af | 70 | wait_ms (1000); |
jiaxinZHOU | 0:07c4fef6c0af | 71 | } |
jiaxinZHOU | 0:07c4fef6c0af | 72 | |
jiaxinZHOU | 0:07c4fef6c0af | 73 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 74 | |
jiaxinZHOU | 0:07c4fef6c0af | 75 | case 2: |
jiaxinZHOU | 0:07c4fef6c0af | 76 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 77 | lcd.printString(" MENU ",0,0); |
jiaxinZHOU | 0:07c4fef6c0af | 78 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 79 | lcd.printString("PLAY GAME",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 80 | lcd.printString("TUTORIAL",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 81 | lcd.printString(">VERSION",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 82 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 83 | |
jiaxinZHOU | 0:07c4fef6c0af | 84 | if (pad.check_event(Gamepad::A_PRESSED)) |
jiaxinZHOU | 0:07c4fef6c0af | 85 | { |
jiaxinZHOU | 0:07c4fef6c0af | 86 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 87 | lcd.printString(" V1.0.0 ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 88 | lcd.printString(" Auther ",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 89 | lcd.printString(" ZHOU JIAXIN ",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 90 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 91 | wait_ms(1000); |
jiaxinZHOU | 0:07c4fef6c0af | 92 | //printf("Direction = %i\n"); |
jiaxinZHOU | 0:07c4fef6c0af | 93 | } |
jiaxinZHOU | 0:07c4fef6c0af | 94 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 95 | |
jiaxinZHOU | 0:07c4fef6c0af | 96 | |
jiaxinZHOU | 0:07c4fef6c0af | 97 | } |
jiaxinZHOU | 0:07c4fef6c0af | 98 | |
jiaxinZHOU | 0:07c4fef6c0af | 99 | } |
jiaxinZHOU | 0:07c4fef6c0af | 100 | } |
jiaxinZHOU | 0:07c4fef6c0af | 101 | |
jiaxinZHOU | 0:07c4fef6c0af | 102 | int Menu::difficulty(N5110 &lcd, Gamepad &pad) { |
jiaxinZHOU | 0:07c4fef6c0af | 103 | go_on = 0; |
jiaxinZHOU | 0:07c4fef6c0af | 104 | while(go_on == 0) |
jiaxinZHOU | 0:07c4fef6c0af | 105 | { |
jiaxinZHOU | 0:07c4fef6c0af | 106 | sel = input(sel,pad); |
jiaxinZHOU | 0:07c4fef6c0af | 107 | wait_ms(200); |
jiaxinZHOU | 0:07c4fef6c0af | 108 | switch (sel) |
jiaxinZHOU | 0:07c4fef6c0af | 109 | { |
jiaxinZHOU | 0:07c4fef6c0af | 110 | case 0: |
jiaxinZHOU | 0:07c4fef6c0af | 111 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 112 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 113 | lcd.printString("> EASY ",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 114 | lcd.printString(" MEDIUM ",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 115 | lcd.printString(" HARD ",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 116 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 117 | if (pad.check_event(Gamepad::A_PRESSED)) |
jiaxinZHOU | 0:07c4fef6c0af | 118 | { |
jiaxinZHOU | 0:07c4fef6c0af | 119 | go_on = 1; |
jiaxinZHOU | 0:07c4fef6c0af | 120 | _fps = 6; |
jiaxinZHOU | 0:07c4fef6c0af | 121 | } |
jiaxinZHOU | 0:07c4fef6c0af | 122 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 123 | |
jiaxinZHOU | 0:07c4fef6c0af | 124 | |
jiaxinZHOU | 0:07c4fef6c0af | 125 | case 1: |
jiaxinZHOU | 0:07c4fef6c0af | 126 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 127 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 128 | lcd.printString(" EASY ",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 129 | lcd.printString("> MEDIUM ",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 130 | lcd.printString(" HARD ",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 131 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 132 | if (pad.check_event(Gamepad::A_PRESSED)) |
jiaxinZHOU | 0:07c4fef6c0af | 133 | { |
jiaxinZHOU | 0:07c4fef6c0af | 134 | go_on = 1; |
jiaxinZHOU | 0:07c4fef6c0af | 135 | _fps = 8; |
jiaxinZHOU | 0:07c4fef6c0af | 136 | } |
jiaxinZHOU | 0:07c4fef6c0af | 137 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 138 | |
jiaxinZHOU | 0:07c4fef6c0af | 139 | |
jiaxinZHOU | 0:07c4fef6c0af | 140 | case 2: |
jiaxinZHOU | 0:07c4fef6c0af | 141 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 142 | lcd.printString(" (PRASS A) ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 143 | lcd.printString(" EASY ",0,2); |
jiaxinZHOU | 0:07c4fef6c0af | 144 | lcd.printString(" MEDIUM ",0,3); |
jiaxinZHOU | 0:07c4fef6c0af | 145 | lcd.printString("> HARD ",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 146 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 147 | if (pad.check_event(Gamepad::A_PRESSED)) |
jiaxinZHOU | 0:07c4fef6c0af | 148 | { |
jiaxinZHOU | 0:07c4fef6c0af | 149 | go_on = 1; |
jiaxinZHOU | 0:07c4fef6c0af | 150 | _fps = 11; |
jiaxinZHOU | 0:07c4fef6c0af | 151 | } |
jiaxinZHOU | 0:07c4fef6c0af | 152 | break; |
jiaxinZHOU | 0:07c4fef6c0af | 153 | |
jiaxinZHOU | 0:07c4fef6c0af | 154 | } |
jiaxinZHOU | 0:07c4fef6c0af | 155 | |
jiaxinZHOU | 0:07c4fef6c0af | 156 | } |
jiaxinZHOU | 0:07c4fef6c0af | 157 | return _fps; |
jiaxinZHOU | 0:07c4fef6c0af | 158 | } |