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@26:4253656c0755, 2019-05-03 (annotated)
- Committer:
- lewisgw
- Date:
- Fri May 03 09:33:34 2019 +0000
- Revision:
- 26:4253656c0755
- Parent:
- 21:20478f086bc2
- Child:
- 27:c920c5ec31af
Now a dynamic fire at the bottom of the screen that gets higher as the player collects more coins. It will kill the skater if they collide.
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 | 26:4253656c0755 | 96 | // Initialise counters for musical tune. |
lewisgw | 20:a8cad4e044ea | 97 | _tone_flag = false; |
lewisgw | 20:a8cad4e044ea | 98 | _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 99 | _chord_counter = 0; |
lewisgw | 12:ebaefda53dd0 | 100 | } |
lewisgw | 12:ebaefda53dd0 | 101 | |
lewisgw | 12:ebaefda53dd0 | 102 | void Menu::run(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 12:ebaefda53dd0 | 103 | set_input(gamepad.check_event(Gamepad::START_PRESSED), |
lewisgw | 13:bcf6bb69c597 | 104 | gamepad.check_event(Gamepad::BACK_PRESSED), |
lewisgw | 13:bcf6bb69c597 | 105 | gamepad.check_event(Gamepad::X_PRESSED)); |
lewisgw | 21:20478f086bc2 | 106 | // Select the current output, execute that output via the output function and |
lewisgw | 21:20478f086bc2 | 107 | // update to the next state depending on the input. |
lewisgw | 12:ebaefda53dd0 | 108 | _output = _fsm[_state].output; |
lewisgw | 12:ebaefda53dd0 | 109 | output(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 110 | _state = _fsm[_state].next_state[_menu_input]; |
lewisgw | 12:ebaefda53dd0 | 111 | } |
lewisgw | 12:ebaefda53dd0 | 112 | |
lewisgw | 12:ebaefda53dd0 | 113 | void Menu::output(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 14:9861fe85c803 | 114 | // 0, 1 and 2 have been assigned to the output of each state respectivley. |
lewisgw | 12:ebaefda53dd0 | 115 | if (_output == 0) { |
lewisgw | 12:ebaefda53dd0 | 116 | run_game(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 117 | } else if (_output == 1) { |
lewisgw | 12:ebaefda53dd0 | 118 | display_menu(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 119 | } else { |
lewisgw | 12:ebaefda53dd0 | 120 | display_controls(lcd, gamepad); |
lewisgw | 12:ebaefda53dd0 | 121 | } |
lewisgw | 9:fff2009f826e | 122 | } |
lewisgw | 9:fff2009f826e | 123 | |
lewisgw | 13:bcf6bb69c597 | 124 | void Menu::set_input(bool start, bool back, bool x) { |
lewisgw | 21:20478f086bc2 | 125 | // 0, 1, 2, 3 have been assigned to each relevent input combination. |
lewisgw | 26:4253656c0755 | 126 | if (!start && !back && !x) { // Nothing is pressed. |
lewisgw | 26:4253656c0755 | 127 | _menu_input = 0; |
lewisgw | 26:4253656c0755 | 128 | } else if (!start && back) { // Only back is pressed. |
lewisgw | 26:4253656c0755 | 129 | _menu_input = 1; |
lewisgw | 26:4253656c0755 | 130 | } else if (start && !back) { // Only start is pressed. |
lewisgw | 26:4253656c0755 | 131 | _menu_input = 2; |
lewisgw | 26:4253656c0755 | 132 | } else if (x) { // Only X is pressed. |
lewisgw | 26:4253656c0755 | 133 | _menu_input = 3; |
lewisgw | 12:ebaefda53dd0 | 134 | } |
lewisgw | 12:ebaefda53dd0 | 135 | } |
lewisgw | 12:ebaefda53dd0 | 136 | |
lewisgw | 12:ebaefda53dd0 | 137 | void Menu::run_game(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 12:ebaefda53dd0 | 138 | _controller.run_game_engine(lcd, gamepad); |
lewisgw | 11:b66170249a26 | 139 | } |
lewisgw | 11:b66170249a26 | 140 | |
lewisgw | 13:bcf6bb69c597 | 141 | void Menu::display_controls(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 19:f35887b14c23 | 142 | lcd.drawLine(0,0,84,0,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 143 | lcd.drawLine(0,6,84,6,FILL_BLACK); |
lewisgw | 26:4253656c0755 | 144 | lcd.drawLine(0,24,84,24,FILL_BLACK); |
lewisgw | 26:4253656c0755 | 145 | lcd.drawLine(0,30,84,30,FILL_BLACK); |
lewisgw | 13:bcf6bb69c597 | 146 | lcd.printString("JOYSTICK:",0,0); |
lewisgw | 26:4253656c0755 | 147 | lcd.printString("-Go Left/Right",0,1); |
lewisgw | 26:4253656c0755 | 148 | lcd.printString("-Down to Duck",0,2); |
lewisgw | 26:4253656c0755 | 149 | lcd.printString("Collect Coins!",0,5); |
lewisgw | 26:4253656c0755 | 150 | lcd.printString("A:",0,3); |
lewisgw | 26:4253656c0755 | 151 | lcd.printString("-Jump",0,4); |
lewisgw | 20:a8cad4e044ea | 152 | play_tone(gamepad); |
lewisgw | 13:bcf6bb69c597 | 153 | } |
lewisgw | 12:ebaefda53dd0 | 154 | |
lewisgw | 12:ebaefda53dd0 | 155 | void Menu::display_menu(N5110 &lcd, Gamepad &gamepad) { |
lewisgw | 19:f35887b14c23 | 156 | lcd.drawLine(0,0,84,0,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 157 | lcd.drawLine(0,6,84,6,FILL_BLACK); |
lewisgw | 19:f35887b14c23 | 158 | lcd.drawLine(0,24,84,24,FILL_BLACK); |
lewisgw | 18:304700b5d8f8 | 159 | lcd.printString("SKATER",24,0); |
lewisgw | 13:bcf6bb69c597 | 160 | lcd.printString("START- Play!",0,1); |
lewisgw | 18:304700b5d8f8 | 161 | lcd.printString("X- Controls",0,2); |
lewisgw | 18:304700b5d8f8 | 162 | lcd.drawSprite(1,25,23,80,(int*)menu_sprite); |
lewisgw | 20:a8cad4e044ea | 163 | play_tone(gamepad); |
lewisgw | 20:a8cad4e044ea | 164 | } |
lewisgw | 20:a8cad4e044ea | 165 | |
lewisgw | 20:a8cad4e044ea | 166 | void Menu::play_tone(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 167 | // Plays a musical tune in 3/4 based on two chords, A and F in Aminor. |
lewisgw | 21:20478f086bc2 | 168 | // It switches between each chord every 12 game loops via chord counter. |
lewisgw | 20:a8cad4e044ea | 169 | _tone_flag = !_tone_flag; |
lewisgw | 20:a8cad4e044ea | 170 | _tone_counter++; |
lewisgw | 21:20478f086bc2 | 171 | _chord_counter++; |
lewisgw | 21:20478f086bc2 | 172 | if (_chord_counter < 12) { |
lewisgw | 21:20478f086bc2 | 173 | play_chord_a(gamepad); |
lewisgw | 20:a8cad4e044ea | 174 | } else { |
lewisgw | 21:20478f086bc2 | 175 | if (_chord_counter == 24) _chord_counter = 0; |
lewisgw | 21:20478f086bc2 | 176 | play_chord_b(gamepad); |
lewisgw | 20:a8cad4e044ea | 177 | } |
lewisgw | 21:20478f086bc2 | 178 | wait(0.14); // Determines how fast the musical tune is played. |
lewisgw | 20:a8cad4e044ea | 179 | } |
lewisgw | 20:a8cad4e044ea | 180 | |
lewisgw | 21:20478f086bc2 | 181 | void Menu::play_chord_a(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 182 | // For each chord, the first set of two notes is played for 5 game loops and |
lewisgw | 21:20478f086bc2 | 183 | // the second set for 2 game loops via tone counter. |
lewisgw | 21:20478f086bc2 | 184 | // Each note is alternated every game loop via tone flag. |
lewisgw | 21:20478f086bc2 | 185 | if (_tone_counter < 5) { |
lewisgw | 21:20478f086bc2 | 186 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 187 | gamepad.tone(220, 0.5); |
lewisgw | 20:a8cad4e044ea | 188 | } else { |
lewisgw | 20:a8cad4e044ea | 189 | gamepad.tone(440, 0.1); |
lewisgw | 20:a8cad4e044ea | 190 | } |
lewisgw | 20:a8cad4e044ea | 191 | } else { |
lewisgw | 21:20478f086bc2 | 192 | if (_tone_counter == 6) _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 193 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 194 | gamepad.tone(174.61, 0.1); |
lewisgw | 20:a8cad4e044ea | 195 | } else { |
lewisgw | 20:a8cad4e044ea | 196 | gamepad.tone(246.94, 0.1); |
lewisgw | 20:a8cad4e044ea | 197 | } |
lewisgw | 20:a8cad4e044ea | 198 | } |
lewisgw | 20:a8cad4e044ea | 199 | } |
lewisgw | 20:a8cad4e044ea | 200 | |
lewisgw | 21:20478f086bc2 | 201 | void Menu::play_chord_b(Gamepad &gamepad) { |
lewisgw | 21:20478f086bc2 | 202 | if (_tone_counter < 5) { |
lewisgw | 21:20478f086bc2 | 203 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 204 | gamepad.tone(174.61, 0.5); |
lewisgw | 20:a8cad4e044ea | 205 | } else { |
lewisgw | 20:a8cad4e044ea | 206 | gamepad.tone(349.23, 0.1); |
lewisgw | 20:a8cad4e044ea | 207 | } |
lewisgw | 20:a8cad4e044ea | 208 | } else { |
lewisgw | 21:20478f086bc2 | 209 | if (_tone_counter == 6) _tone_counter = 0; |
lewisgw | 21:20478f086bc2 | 210 | if (_tone_flag) { |
lewisgw | 20:a8cad4e044ea | 211 | gamepad.tone(659.25, 0.1); |
lewisgw | 20:a8cad4e044ea | 212 | } else { |
lewisgw | 20:a8cad4e044ea | 213 | gamepad.tone(220, 0.1); |
lewisgw | 20:a8cad4e044ea | 214 | } |
lewisgw | 20:a8cad4e044ea | 215 | } |
lewisgw | 20:a8cad4e044ea | 216 | } |