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
Menu/Menu.cpp@21:20478f086bc2, 2019-04-20 (annotated)
- Committer:
- lewisgw
- Date:
- Sat Apr 20 14:46:50 2019 +0000
- Revision:
- 21:20478f086bc2
- Parent:
- 20:a8cad4e044ea
- Child:
- 26:4253656c0755
Fully documented and commented all classes and functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lewisgw | 9:fff2009f826e | 1 | #include "Menu.h" |
lewisgw | 9:fff2009f826e | 2 | |
lewisgw | 18:304700b5d8f8 | 3 | // Define sprite arrays. |
lewisgw | 18:304700b5d8f8 | 4 | int menu_sprite[23][80] = { |
lewisgw | 21:20478f086bc2 | 5 | { 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, |
lewisgw | 21:20478f086bc2 | 6 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 7 | 0,0,1 }, |
lewisgw | 21:20478f086bc2 | 8 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 9 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, |
lewisgw | 21:20478f086bc2 | 10 | 1,1,1 }, |
lewisgw | 21:20478f086bc2 | 11 | { 0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, |
lewisgw | 21:20478f086bc2 | 12 | 0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, |
lewisgw | 21:20478f086bc2 | 13 | 1,1,0 }, |
lewisgw | 21:20478f086bc2 | 14 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 15 | 0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0, |
lewisgw | 21:20478f086bc2 | 16 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 17 | { 0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, |
lewisgw | 21:20478f086bc2 | 18 | 0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 19 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 20 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 21 | 0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 22 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 23 | { 0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1, |
lewisgw | 21:20478f086bc2 | 24 | 0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 25 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 26 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, |
lewisgw | 21:20478f086bc2 | 27 | 1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 28 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 29 | { 0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, |
lewisgw | 21:20478f086bc2 | 30 | 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 31 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 32 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1, |
lewisgw | 21:20478f086bc2 | 33 | 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 34 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 35 | { 0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, |
lewisgw | 21:20478f086bc2 | 36 | 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 37 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 38 | { 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 39 | 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 40 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 41 | { 0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 42 | 0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 43 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 44 | { 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 45 | 0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 46 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 47 | { 0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, |
lewisgw | 21:20478f086bc2 | 48 | 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 49 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 50 | { 0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1, |
lewisgw | 21:20478f086bc2 | 51 | 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 52 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 53 | { 0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1, |
lewisgw | 21:20478f086bc2 | 54 | 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 55 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 56 | { 0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1, |
lewisgw | 21:20478f086bc2 | 57 | 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 58 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 59 | { 0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0, |
lewisgw | 21:20478f086bc2 | 60 | 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 61 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 62 | { 0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1, |
lewisgw | 21:20478f086bc2 | 63 | 1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 64 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 65 | { 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1, |
lewisgw | 21:20478f086bc2 | 66 | 1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 67 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 68 | { 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0, |
lewisgw | 21:20478f086bc2 | 69 | 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 70 | 0,0,0 }, |
lewisgw | 21:20478f086bc2 | 71 | { 0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1, |
lewisgw | 21:20478f086bc2 | 72 | 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
lewisgw | 21:20478f086bc2 | 73 | 0,0,0 } |
lewisgw | 18:304700b5d8f8 | 74 | }; |
lewisgw | 18:304700b5d8f8 | 75 | |
lewisgw | 21:20478f086bc2 | 76 | // Define the finite state machine for three different states: running game, |
lewisgw | 21:20478f086bc2 | 77 | // display |
lewisgw | 14:9861fe85c803 | 78 | // menu and display controls, {ouput,{a,b,c,d}} where a,b,c,d are inputs. |
lewisgw | 14:9861fe85c803 | 79 | // The ouputs have been assigned to 0,1,2. |
lewisgw | 21:20478f086bc2 | 80 | // There are four different relevent input combinations that have been assigned |
lewisgw | 21:20478f086bc2 | 81 | // to: 0,1,2,3. |
lewisgw | 12:ebaefda53dd0 | 82 | State _fsm[3] = { |
lewisgw | 13:bcf6bb69c597 | 83 | {0,{0,1,0,0}}, |
lewisgw | 12:ebaefda53dd0 | 84 | {1,{1,1,0,2}}, |
lewisgw | 13:bcf6bb69c597 | 85 | {2,{2,1,2,0}} |
lewisgw | 12:ebaefda53dd0 | 86 | }; |
lewisgw | 11:b66170249a26 | 87 | |
lewisgw | 21:20478f086bc2 | 88 | // Constructor and distructor. |
lewisgw | 9:fff2009f826e | 89 | Menu::Menu() {} |
lewisgw | 9:fff2009f826e | 90 | |
lewisgw | 9:fff2009f826e | 91 | Menu::~Menu() {} |
lewisgw | 9:fff2009f826e | 92 | |
lewisgw | 21:20478f086bc2 | 93 | void Menu::init() { |
lewisgw | 21:20478f086bc2 | 94 | _state = 1; // Starting state is the menu. |
lewisgw | 12:ebaefda53dd0 | 95 | _controller.init(); |
lewisgw | 20:a8cad4e044ea | 96 | _tone_flag = false; |
lewisgw | 20:a8cad4e044ea | 97 | _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 98 | _chord_counter = 0; |
lewisgw | 12:ebaefda53dd0 | 99 | } |
lewisgw | 12:ebaefda53dd0 | 100 | |
lewisgw | 12:ebaefda53dd0 | 101 | void Menu::run(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 12:ebaefda53dd0 | 102 | set_input(gamepad.check_event(Gamepad::START_PRESSED), |
lewisgw | 13:bcf6bb69c597 | 103 | gamepad.check_event(Gamepad::BACK_PRESSED), |
lewisgw | 13:bcf6bb69c597 | 104 | gamepad.check_event(Gamepad::X_PRESSED)); |
lewisgw | 21:20478f086bc2 | 105 | // Select the current output, execute that output via the output function and |
lewisgw | 21:20478f086bc2 | 106 | // update to the next state depending on the input. |
lewisgw | 12:ebaefda53dd0 | 107 | _output = _fsm[_state].output; |
lewisgw | 12:ebaefda53dd0 | 108 | output(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 109 | _state = _fsm[_state].next_state[_menu_input]; |
lewisgw | 12:ebaefda53dd0 | 110 | } |
lewisgw | 12:ebaefda53dd0 | 111 | |
lewisgw | 12:ebaefda53dd0 | 112 | void Menu::output(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 14:9861fe85c803 | 113 | // 0, 1 and 2 have been assigned to the output of each state respectivley. |
lewisgw | 12:ebaefda53dd0 | 114 | if (_output == 0) { |
lewisgw | 12:ebaefda53dd0 | 115 | run_game(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 116 | } else if (_output == 1) { |
lewisgw | 12:ebaefda53dd0 | 117 | display_menu(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 118 | } else { |
lewisgw | 12:ebaefda53dd0 | 119 | display_controls(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 120 | } |
lewisgw | 9:fff2009f826e | 121 | } |
lewisgw | 9:fff2009f826e | 122 | |
lewisgw | 13:bcf6bb69c597 | 123 | void Menu::set_input(bool start, bool back, bool x) { |
lewisgw | 21:20478f086bc2 | 124 | // 0, 1, 2, 3 have been assigned to each relevent input combination. |
lewisgw | 13:bcf6bb69c597 | 125 | if (!start && !back && !x) { |
lewisgw | 21:20478f086bc2 | 126 | _menu_input = 0; // Nothing is pressed. |
lewisgw | 12:ebaefda53dd0 | 127 | } else if (!start && back) { |
lewisgw | 21:20478f086bc2 | 128 | _menu_input = 1; // Only back is pressed. |
lewisgw | 12:ebaefda53dd0 | 129 | } else if (start && !back) { |
lewisgw | 21:20478f086bc2 | 130 | _menu_input = 2; // Only start is pressed. |
lewisgw | 13:bcf6bb69c597 | 131 | } else if (x) { |
lewisgw | 21:20478f086bc2 | 132 | _menu_input = 3; // Only X is pressed. |
lewisgw | 12:ebaefda53dd0 | 133 | } |
lewisgw | 12:ebaefda53dd0 | 134 | } |
lewisgw | 12:ebaefda53dd0 | 135 | |
lewisgw | 12:ebaefda53dd0 | 136 | void Menu::run_game(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 12:ebaefda53dd0 | 137 | _controller.run_game_engine(lcd, gamepad); |
lewisgw | 11:b66170249a26 | 138 | } |
lewisgw | 11:b66170249a26 | 139 | |
lewisgw | 13:bcf6bb69c597 | 140 | void Menu::display_controls(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 19:f35887b14c23 | 141 | lcd.drawLine(0,0,84,0,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 142 | lcd.drawLine(0,6,84,6,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 143 | lcd.drawLine(0,32,84,32,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 144 | lcd.drawLine(0,38,84,38,FILL_BLACK); |
lewisgw | 13:bcf6bb69c597 | 145 | lcd.printString("JOYSTICK:",0,0); |
lewisgw | 13:bcf6bb69c597 | 146 | lcd.printString("-Move left",0,1); |
lewisgw | 13:bcf6bb69c597 | 147 | lcd.printString("-Move right",0,2); |
lewisgw | 19:f35887b14c23 | 148 | lcd.printString("-Move down",0,3); |
lewisgw | 13:bcf6bb69c597 | 149 | lcd.printString("A:",0,4); |
lewisgw | 13:bcf6bb69c597 | 150 | lcd.printString("-Jump (back)",0,5); |
lewisgw | 20:a8cad4e044ea | 151 | play_tone(gamepad); |
lewisgw | 13:bcf6bb69c597 | 152 | } |
lewisgw | 12:ebaefda53dd0 | 153 | |
lewisgw | 12:ebaefda53dd0 | 154 | void Menu::display_menu(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 19:f35887b14c23 | 155 | lcd.drawLine(0,0,84,0,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 156 | lcd.drawLine(0,6,84,6,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 157 | lcd.drawLine(0,24,84,24,FILL_BLACK); |
lewisgw | 18:304700b5d8f8 | 158 | lcd.printString("SKATER",24,0); |
lewisgw | 13:bcf6bb69c597 | 159 | lcd.printString("START- Play!",0,1); |
lewisgw | 18:304700b5d8f8 | 160 | lcd.printString("X- Controls",0,2); |
lewisgw | 18:304700b5d8f8 | 161 | lcd.drawSprite(1,25,23,80,(int*)menu_sprite); |
lewisgw | 20:a8cad4e044ea | 162 | play_tone(gamepad); |
lewisgw | 20:a8cad4e044ea | 163 | } |
lewisgw | 20:a8cad4e044ea | 164 | |
lewisgw | 20:a8cad4e044ea | 165 | void Menu::play_tone(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 166 | // Plays a musical tune in 3/4 based on two chords, A and F in Aminor. |
lewisgw | 21:20478f086bc2 | 167 | // It switches between each chord every 12 game loops via chord counter. |
lewisgw | 20:a8cad4e044ea | 168 | _tone_flag = !_tone_flag; |
lewisgw | 20:a8cad4e044ea | 169 | _tone_counter++; |
lewisgw | 21:20478f086bc2 | 170 | _chord_counter++; |
lewisgw | 21:20478f086bc2 | 171 | if (_chord_counter < 12) { |
lewisgw | 21:20478f086bc2 | 172 | play_chord_a(gamepad); |
lewisgw | 20:a8cad4e044ea | 173 | } else { |
lewisgw | 21:20478f086bc2 | 174 | if (_chord_counter == 24) _chord_counter = 0; |
lewisgw | 21:20478f086bc2 | 175 | play_chord_b(gamepad); |
lewisgw | 20:a8cad4e044ea | 176 | } |
lewisgw | 21:20478f086bc2 | 177 | wait(0.14); // Determines how fast the musical tune is played. |
lewisgw | 20:a8cad4e044ea | 178 | } |
lewisgw | 20:a8cad4e044ea | 179 | |
lewisgw | 21:20478f086bc2 | 180 | void Menu::play_chord_a(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 181 | // For each chord, the first set of two notes is played for 5 game loops and |
lewisgw | 21:20478f086bc2 | 182 | // the second set for 2 game loops via tone counter. |
lewisgw | 21:20478f086bc2 | 183 | // Each note is alternated every game loop via tone flag. |
lewisgw | 21:20478f086bc2 | 184 | if (_tone_counter < 5) { |
lewisgw | 21:20478f086bc2 | 185 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 186 | gamepad.tone(220, 0.5); |
lewisgw | 20:a8cad4e044ea | 187 | } else { |
lewisgw | 20:a8cad4e044ea | 188 | gamepad.tone(440, 0.1); |
lewisgw | 20:a8cad4e044ea | 189 | } |
lewisgw | 20:a8cad4e044ea | 190 | } else { |
lewisgw | 21:20478f086bc2 | 191 | if (_tone_counter == 6) _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 192 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 193 | gamepad.tone(174.61, 0.1); |
lewisgw | 20:a8cad4e044ea | 194 | } else { |
lewisgw | 20:a8cad4e044ea | 195 | gamepad.tone(246.94, 0.1); |
lewisgw | 20:a8cad4e044ea | 196 | } |
lewisgw | 20:a8cad4e044ea | 197 | } |
lewisgw | 20:a8cad4e044ea | 198 | } |
lewisgw | 20:a8cad4e044ea | 199 | |
lewisgw | 21:20478f086bc2 | 200 | void Menu::play_chord_b(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 201 | if (_tone_counter < 5) { |
lewisgw | 21:20478f086bc2 | 202 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 203 | gamepad.tone(174.61, 0.5); |
lewisgw | 20:a8cad4e044ea | 204 | } else { |
lewisgw | 20:a8cad4e044ea | 205 | gamepad.tone(349.23, 0.1); |
lewisgw | 20:a8cad4e044ea | 206 | } |
lewisgw | 20:a8cad4e044ea | 207 | } else { |
lewisgw | 21:20478f086bc2 | 208 | if (_tone_counter == 6) _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 209 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 210 | gamepad.tone(659.25, 0.1); |
lewisgw | 20:a8cad4e044ea | 211 | } else { |
lewisgw | 20:a8cad4e044ea | 212 | gamepad.tone(220, 0.1); |
lewisgw | 20:a8cad4e044ea | 213 | } |
lewisgw | 20:a8cad4e044ea | 214 | } |
lewisgw | 20:a8cad4e044ea | 215 | } |