![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Game codes for Pokemon Academy Yiu Fai Kwok - 201198802 I have read the University Regulations on Plagiarism and state that the work covered by this declaration is my own and does not contain any unacknowledged work from other sources.
Dependencies: mbed FXOS8700CQ mbed-rtos
main.cpp@34:3ddfaa217eca, 2019-05-09 (annotated)
- Committer:
- yfkwok
- Date:
- Thu May 09 00:41:05 2019 +0000
- Revision:
- 34:3ddfaa217eca
- Parent:
- 33:f7ec806e14b6
09/05/2019 - Last commit before submission
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yfkwok | 0:1da4db5de653 | 1 | /* |
yfkwok | 0:1da4db5de653 | 2 | ELEC2645 Embedded Systems Project |
yfkwok | 0:1da4db5de653 | 3 | School of Electronic & Electrical Engineering |
yfkwok | 0:1da4db5de653 | 4 | University of Leeds |
yfkwok | 0:1da4db5de653 | 5 | Name: Yiu Fai Kwok |
yfkwok | 0:1da4db5de653 | 6 | Username: el17yfk |
yfkwok | 0:1da4db5de653 | 7 | Student ID Number: 201198802 |
yfkwok | 0:1da4db5de653 | 8 | Date: 11/03/2019 |
yfkwok | 0:1da4db5de653 | 9 | */ |
yfkwok | 0:1da4db5de653 | 10 | |
yfkwok | 1:61b67654ffb7 | 11 | #include "mbed.h" |
yfkwok | 1:61b67654ffb7 | 12 | #include "N5110.h" |
yfkwok | 1:61b67654ffb7 | 13 | #include "Gamepad.h" |
yfkwok | 2:464c7e62d97d | 14 | #include "Score.h" |
yfkwok | 2:464c7e62d97d | 15 | #include "Start.h" |
yfkwok | 2:464c7e62d97d | 16 | #include "Game_one.h" |
yfkwok | 15:a65444eb1194 | 17 | #include "Game_two.h" |
yfkwok | 27:4bcdfb212467 | 18 | #include "Game_three.h" |
yfkwok | 5:bc0691d02fd5 | 19 | #include "Exam.h" |
yfkwok | 33:f7ec806e14b6 | 20 | #include "Titles.h" |
yfkwok | 13:02002658e718 | 21 | #include "FXOS8700CQ.h" |
yfkwok | 23:4a070960817a | 22 | #include "rtos.h" |
yfkwok | 1:61b67654ffb7 | 23 | |
yfkwok | 1:61b67654ffb7 | 24 | /////////////// objects /////////////// |
yfkwok | 1:61b67654ffb7 | 25 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 |
yfkwok | 33:f7ec806e14b6 | 26 | Gamepad pad; // Gamepad class |
yfkwok | 33:f7ec806e14b6 | 27 | Score music; // Score class for music files |
yfkwok | 33:f7ec806e14b6 | 28 | Start start; // Start class for choosing starter |
yfkwok | 33:f7ec806e14b6 | 29 | Game_one game_1; // Game_one class for mini game 1 |
yfkwok | 33:f7ec806e14b6 | 30 | Game_two game_2; // Game_two class for mini game 2 |
yfkwok | 33:f7ec806e14b6 | 31 | Game_three game_3; // Game_three class for mini game 3 |
yfkwok | 33:f7ec806e14b6 | 32 | Exam test; // Exam class for exam questions |
yfkwok | 33:f7ec806e14b6 | 33 | Titles grad; // Titles class for graduation credit scene |
yfkwok | 33:f7ec806e14b6 | 34 | Thread thread; // Thread class for running functions in parallel |
yfkwok | 13:02002658e718 | 35 | // I2C connection for FXOS8700CQ accelerometer/magnetometer |
yfkwok | 15:a65444eb1194 | 36 | FXOS8700CQ device(I2C_SDA,I2C_SCL); // PTE25/PTE24 |
yfkwok | 1:61b67654ffb7 | 37 | |
yfkwok | 1:61b67654ffb7 | 38 | ///////////// prototypes /////////////// |
yfkwok | 1:61b67654ffb7 | 39 | void init(); |
yfkwok | 2:464c7e62d97d | 40 | int menu(); |
yfkwok | 2:464c7e62d97d | 41 | void year_one_set(); |
yfkwok | 2:464c7e62d97d | 42 | void year_two_set(); |
yfkwok | 2:464c7e62d97d | 43 | void year_three_set(); |
yfkwok | 23:4a070960817a | 44 | void gym(); |
yfkwok | 2:464c7e62d97d | 45 | |
yfkwok | 2:464c7e62d97d | 46 | //Starting states |
yfkwok | 2:464c7e62d97d | 47 | enum StartStates { |
yfkwok | 2:464c7e62d97d | 48 | TITLE, MENU, INSTRUCTION |
yfkwok | 2:464c7e62d97d | 49 | }; |
yfkwok | 2:464c7e62d97d | 50 | |
yfkwok | 2:464c7e62d97d | 51 | //Game states |
yfkwok | 2:464c7e62d97d | 52 | enum GameStates { |
yfkwok | 2:464c7e62d97d | 53 | YEAR_1, STARTER, BULBASAUR, SQUIRTLE, CHARMANDER, EXAM, YEAR_2, YEAR_3, GRADUATION |
yfkwok | 2:464c7e62d97d | 54 | }; |
yfkwok | 2:464c7e62d97d | 55 | |
yfkwok | 2:464c7e62d97d | 56 | //Global variables |
yfkwok | 32:58def659f463 | 57 | int score = 0; // Score to take note of number of missions passed |
yfkwok | 32:58def659f463 | 58 | int game_1_speed = 0; // Setting the speed for the objects in Game 1 |
yfkwok | 32:58def659f463 | 59 | int game_1_cha = 0; // Setting which evolution to draw in Game 1 |
yfkwok | 32:58def659f463 | 60 | int game_1_r = 1; // Setting the ratio between coins and blocks in Game 1 |
yfkwok | 32:58def659f463 | 61 | int game_2_speed = 0; // Setting the speed for the objects in Game 2 |
yfkwok | 32:58def659f463 | 62 | int game_2_cha = 0; // Setting which evolution to draw in Game 2 |
yfkwok | 32:58def659f463 | 63 | int game_2_r = 1; // Setting the ratio between YouTube and other social medias in Game 2 |
yfkwok | 32:58def659f463 | 64 | int game_3_set = 1; // Setting the number of messages vs books in Game 3 |
yfkwok | 32:58def659f463 | 65 | float game_3_time = 1.0; // Setting the reaction time for Game 3 |
yfkwok | 32:58def659f463 | 66 | int select = 0; // Setting the starter selection parameter |
yfkwok | 32:58def659f463 | 67 | int year = 0; // Setting the year that it is currently in |
yfkwok | 32:58def659f463 | 68 | int pass = 0; // Setting the pass parameters for exam |
yfkwok | 32:58def659f463 | 69 | volatile bool finished = false; // Setting the music loop for Exam |
yfkwok | 32:58def659f463 | 70 | volatile bool end = false; // Setting the game loop |
yfkwok | 32:58def659f463 | 71 | int button_A[9][8] = { |
yfkwok | 32:58def659f463 | 72 | {0,0,1,1,1,1,0,0}, |
yfkwok | 32:58def659f463 | 73 | {0,1,0,0,0,0,1,0}, |
yfkwok | 32:58def659f463 | 74 | {1,0,1,1,1,1,0,1}, |
yfkwok | 32:58def659f463 | 75 | {1,0,1,0,0,1,0,1}, |
yfkwok | 32:58def659f463 | 76 | {1,0,1,1,1,1,0,1}, |
yfkwok | 32:58def659f463 | 77 | {1,0,1,0,0,1,0,1}, |
yfkwok | 32:58def659f463 | 78 | {1,1,0,0,0,0,1,1}, |
yfkwok | 32:58def659f463 | 79 | {0,1,1,1,1,1,1,0}, |
yfkwok | 32:58def659f463 | 80 | {0,0,1,1,1,1,0,0}, |
yfkwok | 32:58def659f463 | 81 | }; // Sprite for button_A |
yfkwok | 1:61b67654ffb7 | 82 | |
yfkwok | 1:61b67654ffb7 | 83 | ///////////// functions //////////////// |
yfkwok | 1:61b67654ffb7 | 84 | int main(){ |
yfkwok | 1:61b67654ffb7 | 85 | |
yfkwok | 2:464c7e62d97d | 86 | // Initialise parameters |
yfkwok | 33:f7ec806e14b6 | 87 | int fps = 8; // frames per second |
yfkwok | 1:61b67654ffb7 | 88 | |
yfkwok | 33:f7ec806e14b6 | 89 | init(); // initialise |
yfkwok | 2:464c7e62d97d | 90 | StartStates currentState = TITLE; |
yfkwok | 2:464c7e62d97d | 91 | GameStates currentGame = YEAR_1; |
yfkwok | 1:61b67654ffb7 | 92 | |
yfkwok | 2:464c7e62d97d | 93 | while(1){ |
yfkwok | 2:464c7e62d97d | 94 | switch (currentState) { |
yfkwok | 2:464c7e62d97d | 95 | case TITLE: |
yfkwok | 26:c60becf3f840 | 96 | // 1. Display title screen and play title music |
yfkwok | 26:c60becf3f840 | 97 | // 2. Proceed to Start screen by pressing start |
yfkwok | 26:c60becf3f840 | 98 | |
yfkwok | 33:f7ec806e14b6 | 99 | grad.welcome(pad, lcd); |
yfkwok | 2:464c7e62d97d | 100 | wait(1.0f/fps); |
yfkwok | 33:f7ec806e14b6 | 101 | currentState = MENU; // Set currentState to MENU to start up the MENU page |
yfkwok | 33:f7ec806e14b6 | 102 | currentGame = YEAR_1; // Set currentGame to YEAR_1 so the game starts from the beginning and resets all difficulty parameters |
yfkwok | 33:f7ec806e14b6 | 103 | end = false; // Reset end parameter to start the Game loop |
yfkwok | 2:464c7e62d97d | 104 | break; |
yfkwok | 1:61b67654ffb7 | 105 | |
yfkwok | 2:464c7e62d97d | 106 | case MENU: |
yfkwok | 26:c60becf3f840 | 107 | // 1. Display starting menu |
yfkwok | 26:c60becf3f840 | 108 | // 2. If Start is selected, initiate year 1 game state |
yfkwok | 26:c60becf3f840 | 109 | // 3. If Instruction is selected, give instruction |
yfkwok | 26:c60becf3f840 | 110 | |
yfkwok | 2:464c7e62d97d | 111 | int op = menu(); |
yfkwok | 2:464c7e62d97d | 112 | if (op == 1){currentState = INSTRUCTION;} |
yfkwok | 2:464c7e62d97d | 113 | else { |
yfkwok | 31:0d2c19a285f6 | 114 | while(!end){ |
yfkwok | 2:464c7e62d97d | 115 | // Game loop |
yfkwok | 2:464c7e62d97d | 116 | switch (currentGame) { |
yfkwok | 2:464c7e62d97d | 117 | case YEAR_1: |
yfkwok | 2:464c7e62d97d | 118 | // 1. Initiate year 1 screen |
yfkwok | 15:a65444eb1194 | 119 | // 2. Set up the parameters for year 1 |
yfkwok | 26:c60becf3f840 | 120 | |
yfkwok | 33:f7ec806e14b6 | 121 | grad.year_one(pad, lcd); // Display year title screen |
yfkwok | 33:f7ec806e14b6 | 122 | year_one_set(); // Set the difficulties for mini games |
yfkwok | 2:464c7e62d97d | 123 | currentGame = STARTER; |
yfkwok | 2:464c7e62d97d | 124 | break; |
yfkwok | 15:a65444eb1194 | 125 | |
yfkwok | 2:464c7e62d97d | 126 | case STARTER: |
yfkwok | 15:a65444eb1194 | 127 | // 1. Provide selection screen for starter pokemon to select which mini game to initiate |
yfkwok | 15:a65444eb1194 | 128 | // 2. Provide description for the mini game and pokemon |
yfkwok | 15:a65444eb1194 | 129 | // 3. Initiate the mini game according to the pokemon being selected |
yfkwok | 26:c60becf3f840 | 130 | |
yfkwok | 33:f7ec806e14b6 | 131 | select = 0; // Reset starter selection parameter to 0 position |
yfkwok | 33:f7ec806e14b6 | 132 | start.init(pad); // Initialize the Start class |
yfkwok | 33:f7ec806e14b6 | 133 | start.starter_draw(lcd); // Draw the start pokemon selection page |
yfkwok | 2:464c7e62d97d | 134 | wait(1.0f/fps); |
yfkwok | 2:464c7e62d97d | 135 | while(pad.check_event(Gamepad::START_PRESSED) == false) |
yfkwok | 2:464c7e62d97d | 136 | { |
yfkwok | 2:464c7e62d97d | 137 | start.starter_update(pad); |
yfkwok | 2:464c7e62d97d | 138 | start.starter_draw(lcd); |
yfkwok | 2:464c7e62d97d | 139 | if(pad.check_event(Gamepad::A_PRESSED) == true){ |
yfkwok | 33:f7ec806e14b6 | 140 | select = start.get_select(start.update_select(pad)); // Set select parameter to determine which starter pokemon is chosen |
yfkwok | 33:f7ec806e14b6 | 141 | start.intro(select, pad, lcd); // Display the description for the pokemon being selected |
yfkwok | 22:f8f36e88b2ca | 142 | pad.init_input(); |
yfkwok | 2:464c7e62d97d | 143 | } |
yfkwok | 2:464c7e62d97d | 144 | wait(1.0f/fps); |
yfkwok | 2:464c7e62d97d | 145 | } |
yfkwok | 2:464c7e62d97d | 146 | select = start.get_select(start.update_select(pad)); |
yfkwok | 4:5bc9c4363d31 | 147 | if(select == 1){ |
yfkwok | 33:f7ec806e14b6 | 148 | music.congrats(pad, lcd, select, year); // Display congratulation screen for choosing the starter pokemon |
yfkwok | 4:5bc9c4363d31 | 149 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 150 | lcd.drawSprite(2,40,9,8,(int*)button_A); // Instruct to press A to continue |
yfkwok | 4:5bc9c4363d31 | 151 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 152 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 153 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 154 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 155 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 156 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 157 | } |
yfkwok | 33:f7ec806e14b6 | 158 | game_1.intro(pad, lcd); // Display Game one description page to introduce the player how the game is played |
yfkwok | 33:f7ec806e14b6 | 159 | currentGame = SQUIRTLE; // Move to Squirtle's game loop |
yfkwok | 22:f8f36e88b2ca | 160 | pad.init_input(); |
yfkwok | 4:5bc9c4363d31 | 161 | } |
yfkwok | 4:5bc9c4363d31 | 162 | else if(select == 0){ |
yfkwok | 4:5bc9c4363d31 | 163 | music.congrats(pad, lcd, select, year); |
yfkwok | 4:5bc9c4363d31 | 164 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 165 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 166 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 167 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 168 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 169 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 170 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 171 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 172 | } |
yfkwok | 33:f7ec806e14b6 | 173 | game_3.intro(pad, lcd); // Display Game three description page to introduce the player how the game is played |
yfkwok | 33:f7ec806e14b6 | 174 | currentGame = BULBASAUR; // Move to Bulbasaur's game loop |
yfkwok | 22:f8f36e88b2ca | 175 | pad.init_input(); |
yfkwok | 22:f8f36e88b2ca | 176 | } |
yfkwok | 4:5bc9c4363d31 | 177 | else if(select == 2){ |
yfkwok | 4:5bc9c4363d31 | 178 | music.congrats(pad, lcd, select, year); |
yfkwok | 4:5bc9c4363d31 | 179 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 180 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 181 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 182 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 183 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 184 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 185 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 186 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 187 | } |
yfkwok | 33:f7ec806e14b6 | 188 | game_2.intro(pad, lcd); // Display Game two description page to introduce the player how the game is played |
yfkwok | 33:f7ec806e14b6 | 189 | currentGame = CHARMANDER; // Move to Charmander's game loop |
yfkwok | 22:f8f36e88b2ca | 190 | pad.init_input(); |
yfkwok | 22:f8f36e88b2ca | 191 | } |
yfkwok | 2:464c7e62d97d | 192 | break; |
yfkwok | 15:a65444eb1194 | 193 | |
yfkwok | 15:a65444eb1194 | 194 | // Game loop for Bulbasaur's mini game |
yfkwok | 2:464c7e62d97d | 195 | case BULBASAUR: |
yfkwok | 27:4bcdfb212467 | 196 | int i = 0; |
yfkwok | 27:4bcdfb212467 | 197 | score = 0; |
yfkwok | 27:4bcdfb212467 | 198 | while(i < 3){ |
yfkwok | 27:4bcdfb212467 | 199 | // Indicate for which term the current game is in |
yfkwok | 33:f7ec806e14b6 | 200 | if(i == 0) {grad.term_one(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 201 | else if(i == 1) {grad.term_two(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 202 | else{grad.term_three(pad, lcd);} |
yfkwok | 27:4bcdfb212467 | 203 | int j = 0; |
yfkwok | 28:a6726a3f8e6d | 204 | game_3.init_para(); |
yfkwok | 27:4bcdfb212467 | 205 | while(j < 5){ |
yfkwok | 27:4bcdfb212467 | 206 | // Game loop for 5 rounds |
yfkwok | 33:f7ec806e14b6 | 207 | game_3.init(pad, game_3_set); // Set the ratio between messages vs books according to year |
yfkwok | 27:4bcdfb212467 | 208 | game_3.render(lcd, game_3_set); |
yfkwok | 33:f7ec806e14b6 | 209 | wait(game_3_time); // Parameter to set the reaction time frame for varying difficulty |
yfkwok | 27:4bcdfb212467 | 210 | game_3.read_input(pad); |
yfkwok | 27:4bcdfb212467 | 211 | game_3.update(pad, game_3_set); |
yfkwok | 33:f7ec806e14b6 | 212 | j = game_3.get_count(); // Get count for how many rounds the player has played |
yfkwok | 27:4bcdfb212467 | 213 | } |
yfkwok | 27:4bcdfb212467 | 214 | i = i++; |
yfkwok | 27:4bcdfb212467 | 215 | // determine if win condition is met, return score to proceed to EXAM game loop |
yfkwok | 27:4bcdfb212467 | 216 | if(game_3.get_score() >= 4) { |
yfkwok | 33:f7ec806e14b6 | 217 | grad.win(lcd); |
yfkwok | 27:4bcdfb212467 | 218 | music.win(pad); |
yfkwok | 27:4bcdfb212467 | 219 | wait(0.5); |
yfkwok | 27:4bcdfb212467 | 220 | score++; |
yfkwok | 27:4bcdfb212467 | 221 | } |
yfkwok | 27:4bcdfb212467 | 222 | else { |
yfkwok | 33:f7ec806e14b6 | 223 | grad.lose(lcd); |
yfkwok | 27:4bcdfb212467 | 224 | pad.tone(750.0,0.2); |
yfkwok | 27:4bcdfb212467 | 225 | wait(0.5); |
yfkwok | 27:4bcdfb212467 | 226 | pad.tone(750.0,0.2); |
yfkwok | 27:4bcdfb212467 | 227 | wait(1.0); |
yfkwok | 27:4bcdfb212467 | 228 | } |
yfkwok | 27:4bcdfb212467 | 229 | } |
yfkwok | 5:bc0691d02fd5 | 230 | currentGame = EXAM; |
yfkwok | 2:464c7e62d97d | 231 | break; |
yfkwok | 15:a65444eb1194 | 232 | |
yfkwok | 15:a65444eb1194 | 233 | // Game loop for Squirtle's mini game |
yfkwok | 2:464c7e62d97d | 234 | case SQUIRTLE: |
yfkwok | 27:4bcdfb212467 | 235 | i = 0; |
yfkwok | 2:464c7e62d97d | 236 | score = 0; |
yfkwok | 2:464c7e62d97d | 237 | while(i < 3){ |
yfkwok | 15:a65444eb1194 | 238 | // Indicate for which term the current game is in |
yfkwok | 33:f7ec806e14b6 | 239 | if(i == 0) {grad.term_one(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 240 | else if(i == 1) {grad.term_two(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 241 | else{grad.term_three(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 242 | game_1.init(game_1_speed, game_1_cha, game_1_r); // Set the game difficulty by changing speed of objects and coin to block ratio according to year |
yfkwok | 2:464c7e62d97d | 243 | int j = 0; |
yfkwok | 2:464c7e62d97d | 244 | while(j < 10){ |
yfkwok | 15:a65444eb1194 | 245 | // Game loop for 10 rounds |
yfkwok | 2:464c7e62d97d | 246 | game_1.read_input(pad); |
yfkwok | 2:464c7e62d97d | 247 | game_1.update(pad, lcd); |
yfkwok | 2:464c7e62d97d | 248 | game_1.render(lcd, game_1_cha); |
yfkwok | 2:464c7e62d97d | 249 | wait(1.0f/fps); |
yfkwok | 33:f7ec806e14b6 | 250 | j = game_1.get_count(); // Get count for how many rounds the player has played |
yfkwok | 2:464c7e62d97d | 251 | } |
yfkwok | 2:464c7e62d97d | 252 | i = i++; |
yfkwok | 15:a65444eb1194 | 253 | // determine if win condition is met, return score to proceed to EXAM game loop |
yfkwok | 5:bc0691d02fd5 | 254 | if(game_1.print_scores(lcd) >= 8) { |
yfkwok | 33:f7ec806e14b6 | 255 | grad.win(lcd); |
yfkwok | 5:bc0691d02fd5 | 256 | music.win(pad); |
yfkwok | 5:bc0691d02fd5 | 257 | wait(0.5); |
yfkwok | 5:bc0691d02fd5 | 258 | score++; |
yfkwok | 5:bc0691d02fd5 | 259 | } |
yfkwok | 5:bc0691d02fd5 | 260 | else { |
yfkwok | 33:f7ec806e14b6 | 261 | grad.lose(lcd); |
yfkwok | 5:bc0691d02fd5 | 262 | pad.tone(750.0,0.2); |
yfkwok | 5:bc0691d02fd5 | 263 | wait(0.5); |
yfkwok | 5:bc0691d02fd5 | 264 | pad.tone(750.0,0.2); |
yfkwok | 5:bc0691d02fd5 | 265 | wait(1.0); |
yfkwok | 5:bc0691d02fd5 | 266 | } |
yfkwok | 2:464c7e62d97d | 267 | } |
yfkwok | 2:464c7e62d97d | 268 | currentGame = EXAM; |
yfkwok | 2:464c7e62d97d | 269 | |
yfkwok | 2:464c7e62d97d | 270 | break; |
yfkwok | 15:a65444eb1194 | 271 | |
yfkwok | 15:a65444eb1194 | 272 | // Game loop for Charmander's mini game |
yfkwok | 2:464c7e62d97d | 273 | case CHARMANDER: |
yfkwok | 15:a65444eb1194 | 274 | i = 0; |
yfkwok | 15:a65444eb1194 | 275 | score = 0; |
yfkwok | 15:a65444eb1194 | 276 | while (i < 3) { |
yfkwok | 26:c60becf3f840 | 277 | // Indicate for which term the current game is in |
yfkwok | 33:f7ec806e14b6 | 278 | if(i == 0) {grad.term_one(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 279 | else if(i == 1) {grad.term_two(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 280 | else{grad.term_three(pad, lcd);} |
yfkwok | 33:f7ec806e14b6 | 281 | game_2.init(game_2_speed, game_2_cha, game_2_r); // Set the game difficulty by changing speed and ratio between YouTube and normal icons according to year |
yfkwok | 15:a65444eb1194 | 282 | int j = 0; |
yfkwok | 21:704d938acf5d | 283 | while(j < 6){ |
yfkwok | 15:a65444eb1194 | 284 | game_2.read_input(device); |
yfkwok | 15:a65444eb1194 | 285 | game_2.update(pad, lcd, game_2_cha); |
yfkwok | 15:a65444eb1194 | 286 | game_2.render(lcd, game_2_cha); |
yfkwok | 15:a65444eb1194 | 287 | wait(1.0f/fps); |
yfkwok | 15:a65444eb1194 | 288 | j = game_2.get_count(); |
yfkwok | 15:a65444eb1194 | 289 | } |
yfkwok | 15:a65444eb1194 | 290 | i = i++; |
yfkwok | 26:c60becf3f840 | 291 | // determine if win condition is met, return score to proceed to EXAM game loop |
yfkwok | 21:704d938acf5d | 292 | if(game_2.get_count() == 6) { |
yfkwok | 33:f7ec806e14b6 | 293 | grad.win(lcd); |
yfkwok | 15:a65444eb1194 | 294 | music.win(pad); |
yfkwok | 15:a65444eb1194 | 295 | wait(0.5); |
yfkwok | 15:a65444eb1194 | 296 | score++; |
yfkwok | 15:a65444eb1194 | 297 | } |
yfkwok | 15:a65444eb1194 | 298 | else { |
yfkwok | 33:f7ec806e14b6 | 299 | grad.lose(lcd); |
yfkwok | 15:a65444eb1194 | 300 | pad.tone(750.0,0.2); |
yfkwok | 15:a65444eb1194 | 301 | wait(0.5); |
yfkwok | 15:a65444eb1194 | 302 | pad.tone(750.0,0.2); |
yfkwok | 15:a65444eb1194 | 303 | wait(1.0); |
yfkwok | 15:a65444eb1194 | 304 | } |
yfkwok | 15:a65444eb1194 | 305 | } |
yfkwok | 5:bc0691d02fd5 | 306 | currentGame = EXAM; |
yfkwok | 2:464c7e62d97d | 307 | break; |
yfkwok | 15:a65444eb1194 | 308 | |
yfkwok | 15:a65444eb1194 | 309 | // Game loop for EXAM |
yfkwok | 2:464c7e62d97d | 310 | case EXAM: |
yfkwok | 26:c60becf3f840 | 311 | // 1. Display the exam questions according to year. |
yfkwok | 26:c60becf3f840 | 312 | // 2. Display the answers according to how many mini games the player passed. |
yfkwok | 26:c60becf3f840 | 313 | // 3. If player manages to answer 2 or 3 questions correctly, enter to next year/GRADUATION. |
yfkwok | 26:c60becf3f840 | 314 | // 4. If player fails, repeat the year. |
yfkwok | 26:c60becf3f840 | 315 | |
yfkwok | 26:c60becf3f840 | 316 | // Reset background music control parameter |
yfkwok | 23:4a070960817a | 317 | finished = false; |
yfkwok | 26:c60becf3f840 | 318 | |
yfkwok | 26:c60becf3f840 | 319 | // Draw exam title screen |
yfkwok | 5:bc0691d02fd5 | 320 | test.exam_title(pad, lcd); |
yfkwok | 26:c60becf3f840 | 321 | |
yfkwok | 26:c60becf3f840 | 322 | // Using thread to run music and exam functions in parallel |
yfkwok | 23:4a070960817a | 323 | thread.start(gym); |
yfkwok | 26:c60becf3f840 | 324 | |
yfkwok | 26:c60becf3f840 | 325 | // Check for which year's exam questions need to be fetched |
yfkwok | 23:4a070960817a | 326 | if(year == 0) {pass = test.exam_q_one(pad, lcd, score); finished = true;} |
yfkwok | 23:4a070960817a | 327 | else if(year == 1) {pass = test.exam_q_two(pad, lcd, score); finished = true;} |
yfkwok | 23:4a070960817a | 328 | else if(year == 2) {pass = test.exam_q_three(pad, lcd, score); finished = true;} |
yfkwok | 23:4a070960817a | 329 | Thread::wait(1000); |
yfkwok | 23:4a070960817a | 330 | thread.join(); |
yfkwok | 26:c60becf3f840 | 331 | // End the thread |
yfkwok | 26:c60becf3f840 | 332 | |
yfkwok | 32:58def659f463 | 333 | // Check for number of correct answers to determine if proceed to next year or not |
yfkwok | 28:a6726a3f8e6d | 334 | if(pass > 2){ |
yfkwok | 33:f7ec806e14b6 | 335 | grad.passed(lcd); |
yfkwok | 5:bc0691d02fd5 | 336 | music.win(pad); |
yfkwok | 5:bc0691d02fd5 | 337 | wait(0.5); |
yfkwok | 12:71683453f66a | 338 | year++; |
yfkwok | 5:bc0691d02fd5 | 339 | if(year == 1){currentGame = YEAR_2;} |
yfkwok | 5:bc0691d02fd5 | 340 | else if(year == 2){currentGame = YEAR_3;} |
yfkwok | 5:bc0691d02fd5 | 341 | else if(year == 3){currentGame = GRADUATION;} |
yfkwok | 5:bc0691d02fd5 | 342 | } |
yfkwok | 5:bc0691d02fd5 | 343 | else { |
yfkwok | 33:f7ec806e14b6 | 344 | grad.failed(lcd); |
yfkwok | 5:bc0691d02fd5 | 345 | pad.tone(750.0,0.2); |
yfkwok | 5:bc0691d02fd5 | 346 | wait(0.5); |
yfkwok | 5:bc0691d02fd5 | 347 | pad.tone(750.0,0.2); |
yfkwok | 5:bc0691d02fd5 | 348 | wait(1.0); |
yfkwok | 5:bc0691d02fd5 | 349 | if(year == 0){currentGame = YEAR_1;} |
yfkwok | 5:bc0691d02fd5 | 350 | else if(year == 1){ |
yfkwok | 5:bc0691d02fd5 | 351 | if(select == 1){currentGame = SQUIRTLE;} |
yfkwok | 5:bc0691d02fd5 | 352 | else if(select == 0){currentGame = BULBASAUR;} |
yfkwok | 5:bc0691d02fd5 | 353 | else if(select == 2){currentGame = CHARMANDER;} |
yfkwok | 5:bc0691d02fd5 | 354 | } |
yfkwok | 5:bc0691d02fd5 | 355 | else if(year == 2){ |
yfkwok | 5:bc0691d02fd5 | 356 | if(select == 1){currentGame = SQUIRTLE;} |
yfkwok | 5:bc0691d02fd5 | 357 | else if(select == 0){currentGame = BULBASAUR;} |
yfkwok | 5:bc0691d02fd5 | 358 | else if(select == 2){currentGame = CHARMANDER;} |
yfkwok | 5:bc0691d02fd5 | 359 | } |
yfkwok | 5:bc0691d02fd5 | 360 | } |
yfkwok | 2:464c7e62d97d | 361 | break; |
yfkwok | 2:464c7e62d97d | 362 | case YEAR_2: |
yfkwok | 26:c60becf3f840 | 363 | // 1. Initiate year 2 screen |
yfkwok | 26:c60becf3f840 | 364 | // 2. Set up the parameters for year 2 |
yfkwok | 26:c60becf3f840 | 365 | // 3. Initiate evolution animation for chosen character |
yfkwok | 26:c60becf3f840 | 366 | // 4. Enter to game loop for chosen character |
yfkwok | 26:c60becf3f840 | 367 | |
yfkwok | 33:f7ec806e14b6 | 368 | grad.year_two(pad, lcd); |
yfkwok | 31:0d2c19a285f6 | 369 | year_two_set(); // Set up the parameters for year 2 |
yfkwok | 4:5bc9c4363d31 | 370 | if(select == 1){ |
yfkwok | 33:f7ec806e14b6 | 371 | music.evolution_music(pad, lcd, select, year); // Play the evolution animation and music for the chosen pokemon |
yfkwok | 4:5bc9c4363d31 | 372 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 373 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 374 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 375 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 376 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 377 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 378 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 379 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 380 | } |
yfkwok | 33:f7ec806e14b6 | 381 | currentGame = SQUIRTLE; // Go back to game loop |
yfkwok | 4:5bc9c4363d31 | 382 | } |
yfkwok | 4:5bc9c4363d31 | 383 | else if(select == 0){ |
yfkwok | 33:f7ec806e14b6 | 384 | music.evolution_music(pad, lcd, select, year); // Play the evolution animation and music for the chosen pokemon |
yfkwok | 4:5bc9c4363d31 | 385 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 386 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 387 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 388 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 389 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 390 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 391 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 392 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 393 | } |
yfkwok | 33:f7ec806e14b6 | 394 | currentGame = BULBASAUR; // Go back to game loop |
yfkwok | 15:a65444eb1194 | 395 | } |
yfkwok | 4:5bc9c4363d31 | 396 | else if(select == 2){ |
yfkwok | 33:f7ec806e14b6 | 397 | music.evolution_music(pad, lcd, select, year); // Play the evolution animation and music for the chosen pokemon |
yfkwok | 4:5bc9c4363d31 | 398 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 399 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 400 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 401 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 402 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 403 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 404 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 405 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 406 | } |
yfkwok | 33:f7ec806e14b6 | 407 | currentGame = CHARMANDER; // Go back to game loop |
yfkwok | 15:a65444eb1194 | 408 | } |
yfkwok | 2:464c7e62d97d | 409 | break; |
yfkwok | 2:464c7e62d97d | 410 | case YEAR_3: |
yfkwok | 26:c60becf3f840 | 411 | // 1. Initiate year 3 screen |
yfkwok | 26:c60becf3f840 | 412 | // 2. Set up the parameters for year 3 |
yfkwok | 26:c60becf3f840 | 413 | // 3. Initiate evolution animation for chosen character |
yfkwok | 26:c60becf3f840 | 414 | // 4. Enter to game loop for chosen character |
yfkwok | 26:c60becf3f840 | 415 | |
yfkwok | 33:f7ec806e14b6 | 416 | grad.year_three(pad, lcd); |
yfkwok | 2:464c7e62d97d | 417 | year_three_set(); |
yfkwok | 4:5bc9c4363d31 | 418 | if(select == 1){ |
yfkwok | 4:5bc9c4363d31 | 419 | music.evolution_music(pad, lcd, select, year); |
yfkwok | 4:5bc9c4363d31 | 420 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 421 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 422 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 423 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 424 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 425 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 426 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 427 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 428 | } |
yfkwok | 4:5bc9c4363d31 | 429 | currentGame = SQUIRTLE; |
yfkwok | 4:5bc9c4363d31 | 430 | } |
yfkwok | 4:5bc9c4363d31 | 431 | else if(select == 0){ |
yfkwok | 4:5bc9c4363d31 | 432 | music.evolution_music(pad, lcd, select, year); |
yfkwok | 4:5bc9c4363d31 | 433 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 434 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 435 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 436 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 437 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 438 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 439 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 440 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 441 | } |
yfkwok | 15:a65444eb1194 | 442 | currentGame = BULBASAUR; |
yfkwok | 15:a65444eb1194 | 443 | } |
yfkwok | 4:5bc9c4363d31 | 444 | else if(select == 2){ |
yfkwok | 4:5bc9c4363d31 | 445 | music.evolution_music(pad, lcd, select, year); |
yfkwok | 4:5bc9c4363d31 | 446 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 447 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 4:5bc9c4363d31 | 448 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 449 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 450 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 451 | lcd.printString(" ",5,5); |
yfkwok | 5:bc0691d02fd5 | 452 | lcd.refresh(); |
yfkwok | 5:bc0691d02fd5 | 453 | wait(0.3); |
yfkwok | 4:5bc9c4363d31 | 454 | } |
yfkwok | 15:a65444eb1194 | 455 | currentGame = CHARMANDER; |
yfkwok | 15:a65444eb1194 | 456 | } |
yfkwok | 2:464c7e62d97d | 457 | break; |
yfkwok | 2:464c7e62d97d | 458 | case GRADUATION: |
yfkwok | 26:c60becf3f840 | 459 | // 1. Display congratulation theme for player! |
yfkwok | 31:0d2c19a285f6 | 460 | // 2. Return to the TITLE screen |
yfkwok | 26:c60becf3f840 | 461 | |
yfkwok | 31:0d2c19a285f6 | 462 | grad.Grad_title(pad, lcd, select); |
yfkwok | 31:0d2c19a285f6 | 463 | wait(1.0); |
yfkwok | 31:0d2c19a285f6 | 464 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 34:3ddfaa217eca | 465 | lcd.drawSprite(2,40,9,8,(int*)button_A); |
yfkwok | 31:0d2c19a285f6 | 466 | lcd.refresh(); |
yfkwok | 31:0d2c19a285f6 | 467 | wait(0.3); |
yfkwok | 32:58def659f463 | 468 | lcd.printString(" ",0,5); |
yfkwok | 33:f7ec806e14b6 | 469 | lcd.printString(" ",5,5); |
yfkwok | 31:0d2c19a285f6 | 470 | lcd.refresh(); |
yfkwok | 31:0d2c19a285f6 | 471 | wait(0.3); |
yfkwok | 31:0d2c19a285f6 | 472 | } |
yfkwok | 31:0d2c19a285f6 | 473 | end = true; |
yfkwok | 2:464c7e62d97d | 474 | break; |
yfkwok | 2:464c7e62d97d | 475 | } |
yfkwok | 2:464c7e62d97d | 476 | } |
yfkwok | 2:464c7e62d97d | 477 | } |
yfkwok | 31:0d2c19a285f6 | 478 | currentState = TITLE; |
yfkwok | 2:464c7e62d97d | 479 | break; |
yfkwok | 2:464c7e62d97d | 480 | |
yfkwok | 2:464c7e62d97d | 481 | case INSTRUCTION: |
yfkwok | 26:c60becf3f840 | 482 | // 1. Display instruction |
yfkwok | 26:c60becf3f840 | 483 | // 2. Return to MENU screen |
yfkwok | 26:c60becf3f840 | 484 | |
yfkwok | 33:f7ec806e14b6 | 485 | grad.instruction(pad, lcd); |
yfkwok | 2:464c7e62d97d | 486 | currentState = MENU; |
yfkwok | 2:464c7e62d97d | 487 | break; |
yfkwok | 2:464c7e62d97d | 488 | } |
yfkwok | 1:61b67654ffb7 | 489 | } |
yfkwok | 1:61b67654ffb7 | 490 | } |
yfkwok | 1:61b67654ffb7 | 491 | |
yfkwok | 1:61b67654ffb7 | 492 | // initialies all classes and libraries |
yfkwok | 1:61b67654ffb7 | 493 | void init() |
yfkwok | 1:61b67654ffb7 | 494 | { |
yfkwok | 1:61b67654ffb7 | 495 | lcd.init(); |
yfkwok | 2:464c7e62d97d | 496 | pad.init(); |
yfkwok | 21:704d938acf5d | 497 | device.init(); |
yfkwok | 1:61b67654ffb7 | 498 | // change set contrast in range 0.0 to 1.0 |
yfkwok | 1:61b67654ffb7 | 499 | // 0.4 appears to be a good starting point |
yfkwok | 21:704d938acf5d | 500 | lcd.setContrast(0.4); |
yfkwok | 1:61b67654ffb7 | 501 | } |
yfkwok | 1:61b67654ffb7 | 502 | |
yfkwok | 32:58def659f463 | 503 | // Function for displaying the menu screen |
yfkwok | 2:464c7e62d97d | 504 | int menu() |
yfkwok | 2:464c7e62d97d | 505 | { |
yfkwok | 2:464c7e62d97d | 506 | // clear screen, re-draw and refresh |
yfkwok | 2:464c7e62d97d | 507 | lcd.clear(); |
yfkwok | 32:58def659f463 | 508 | int pos_y = 5; // Set position for menu pointer |
yfkwok | 2:464c7e62d97d | 509 | while(pad.check_event(Gamepad::A_PRESSED) == false){ |
yfkwok | 2:464c7e62d97d | 510 | lcd.clear(); |
yfkwok | 2:464c7e62d97d | 511 | if(pad.get_direction() == N){ |
yfkwok | 32:58def659f463 | 512 | pos_y = 5; // Set position for menu pointer to top option |
yfkwok | 2:464c7e62d97d | 513 | }else if(pad.get_direction() == S){ |
yfkwok | 32:58def659f463 | 514 | pos_y = 16; // Set position for menu pointer to bottom option |
yfkwok | 1:61b67654ffb7 | 515 | } |
yfkwok | 11:5a6b9dffd78a | 516 | int arrow_data[7][5] = { |
yfkwok | 11:5a6b9dffd78a | 517 | {1,1,0,0,0}, |
yfkwok | 11:5a6b9dffd78a | 518 | {0,1,1,0,0}, |
yfkwok | 11:5a6b9dffd78a | 519 | {0,0,1,1,0}, |
yfkwok | 11:5a6b9dffd78a | 520 | {0,0,0,1,1}, |
yfkwok | 11:5a6b9dffd78a | 521 | {0,0,1,1,0}, |
yfkwok | 11:5a6b9dffd78a | 522 | {0,1,1,0,0}, |
yfkwok | 11:5a6b9dffd78a | 523 | {1,1,0,0,0}, |
yfkwok | 2:464c7e62d97d | 524 | }; |
yfkwok | 26:c60becf3f840 | 525 | // draw pointer for selection |
yfkwok | 11:5a6b9dffd78a | 526 | lcd.drawSprite(5, pos_y, 7, 5, (int *)arrow_data); |
yfkwok | 2:464c7e62d97d | 527 | |
yfkwok | 10:adff3c804985 | 528 | int op_one_data[7][26] = { |
yfkwok | 10:adff3c804985 | 529 | {1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1}, |
yfkwok | 10:adff3c804985 | 530 | {1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 531 | {1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 532 | {1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 533 | {0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 534 | {0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0}, |
yfkwok | 10:adff3c804985 | 535 | {1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0}, |
yfkwok | 2:464c7e62d97d | 536 | }; |
yfkwok | 26:c60becf3f840 | 537 | // draw "START" |
yfkwok | 10:adff3c804985 | 538 | lcd.drawSprite(18, 5, 7, 26, (int *)op_one_data); |
yfkwok | 2:464c7e62d97d | 539 | |
yfkwok | 10:adff3c804985 | 540 | int op_two_data[7][18] = { |
yfkwok | 10:adff3c804985 | 541 | {1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1}, |
yfkwok | 10:adff3c804985 | 542 | {0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 543 | {0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 544 | {0,1,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 545 | {0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 546 | {0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1}, |
yfkwok | 10:adff3c804985 | 547 | {1,1,1,0,1,0,0,1,0,1,0,0,0,0,1,1,1,1}, |
yfkwok | 2:464c7e62d97d | 548 | }; |
yfkwok | 26:c60becf3f840 | 549 | // draw "INFO" |
yfkwok | 10:adff3c804985 | 550 | lcd.drawSprite(18, 16, 7, 18, (int*) op_two_data); |
yfkwok | 2:464c7e62d97d | 551 | |
yfkwok | 11:5a6b9dffd78a | 552 | int instruct_data[7][75] = { |
yfkwok | 11:5a6b9dffd78a | 553 | {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,1,1,1,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0}, |
yfkwok | 11:5a6b9dffd78a | 554 | {1,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,1,0,0,1,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0}, |
yfkwok | 11:5a6b9dffd78a | 555 | {1,0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0}, |
yfkwok | 11:5a6b9dffd78a | 556 | {1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0}, |
yfkwok | 11:5a6b9dffd78a | 557 | {1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0}, |
yfkwok | 11:5a6b9dffd78a | 558 | {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1}, |
yfkwok | 11:5a6b9dffd78a | 559 | {1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1}, |
yfkwok | 2:464c7e62d97d | 560 | }; |
yfkwok | 26:c60becf3f840 | 561 | // draw instruction |
yfkwok | 11:5a6b9dffd78a | 562 | lcd.drawSprite(5, 38, 7, 75,(int *) instruct_data); |
yfkwok | 1:61b67654ffb7 | 563 | lcd.refresh(); |
yfkwok | 1:61b67654ffb7 | 564 | |
yfkwok | 2:464c7e62d97d | 565 | } |
yfkwok | 2:464c7e62d97d | 566 | |
yfkwok | 2:464c7e62d97d | 567 | //return value for which menu option is currently selected |
yfkwok | 2:464c7e62d97d | 568 | int op = 0; |
yfkwok | 2:464c7e62d97d | 569 | if(pos_y == 5){op = 0;} |
yfkwok | 2:464c7e62d97d | 570 | else if(pos_y == 16){op = 1;} |
yfkwok | 2:464c7e62d97d | 571 | |
yfkwok | 2:464c7e62d97d | 572 | //return value for which menu option is currently selected |
yfkwok | 2:464c7e62d97d | 573 | return op; |
yfkwok | 2:464c7e62d97d | 574 | |
yfkwok | 2:464c7e62d97d | 575 | } |
yfkwok | 2:464c7e62d97d | 576 | |
yfkwok | 32:58def659f463 | 577 | // Function for setting year one game parameters |
yfkwok | 2:464c7e62d97d | 578 | void year_one_set() |
yfkwok | 2:464c7e62d97d | 579 | { |
yfkwok | 31:0d2c19a285f6 | 580 | year = 0; |
yfkwok | 28:a6726a3f8e6d | 581 | game_1_speed = 12; |
yfkwok | 2:464c7e62d97d | 582 | game_1_cha = 1; |
yfkwok | 5:bc0691d02fd5 | 583 | game_1_r = 5; |
yfkwok | 21:704d938acf5d | 584 | game_2_speed = 1; |
yfkwok | 15:a65444eb1194 | 585 | game_2_cha = 1; |
yfkwok | 15:a65444eb1194 | 586 | game_2_r = 6; |
yfkwok | 27:4bcdfb212467 | 587 | game_3_set = 1; |
yfkwok | 33:f7ec806e14b6 | 588 | game_3_time = 0.6; |
yfkwok | 2:464c7e62d97d | 589 | } |
yfkwok | 2:464c7e62d97d | 590 | |
yfkwok | 32:58def659f463 | 591 | // Function for setting year two game parameters |
yfkwok | 2:464c7e62d97d | 592 | void year_two_set() |
yfkwok | 2:464c7e62d97d | 593 | { |
yfkwok | 31:0d2c19a285f6 | 594 | year = 1; |
yfkwok | 28:a6726a3f8e6d | 595 | game_1_speed = 14; |
yfkwok | 2:464c7e62d97d | 596 | game_1_cha = 2; |
yfkwok | 5:bc0691d02fd5 | 597 | game_1_r = 3; |
yfkwok | 21:704d938acf5d | 598 | game_2_speed = 2; |
yfkwok | 15:a65444eb1194 | 599 | game_2_cha = 2; |
yfkwok | 15:a65444eb1194 | 600 | game_2_r = 5; |
yfkwok | 27:4bcdfb212467 | 601 | game_3_set = 2; |
yfkwok | 28:a6726a3f8e6d | 602 | game_3_time = 0.4; |
yfkwok | 2:464c7e62d97d | 603 | } |
yfkwok | 2:464c7e62d97d | 604 | |
yfkwok | 32:58def659f463 | 605 | // Function for setting year three game parameters |
yfkwok | 2:464c7e62d97d | 606 | void year_three_set() |
yfkwok | 2:464c7e62d97d | 607 | { |
yfkwok | 31:0d2c19a285f6 | 608 | year = 2; |
yfkwok | 5:bc0691d02fd5 | 609 | game_1_speed = 14; |
yfkwok | 2:464c7e62d97d | 610 | game_1_cha = 3; |
yfkwok | 5:bc0691d02fd5 | 611 | game_1_r = 2; |
yfkwok | 22:f8f36e88b2ca | 612 | game_2_speed = 2; |
yfkwok | 15:a65444eb1194 | 613 | game_2_cha = 3; |
yfkwok | 15:a65444eb1194 | 614 | game_2_r = 3; |
yfkwok | 27:4bcdfb212467 | 615 | game_3_set = 3; |
yfkwok | 28:a6726a3f8e6d | 616 | game_3_time = 0.3; |
yfkwok | 2:464c7e62d97d | 617 | } |
yfkwok | 2:464c7e62d97d | 618 | |
yfkwok | 32:58def659f463 | 619 | // INTENSE music played in background during exams, music originally from Pokemon (R/B/Y) during GYM leader battle |
yfkwok | 23:4a070960817a | 620 | void gym() |
yfkwok | 23:4a070960817a | 621 | { |
yfkwok | 23:4a070960817a | 622 | // bar 1 |
yfkwok | 23:4a070960817a | 623 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 26:c60becf3f840 | 624 | // to break out of the function |
yfkwok | 23:4a070960817a | 625 | if (finished == true) {return;} |
yfkwok | 23:4a070960817a | 626 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 627 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 628 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 629 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 630 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 631 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 632 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 633 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 634 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 635 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 636 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 637 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 638 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 639 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 640 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 641 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 32:58def659f463 | 642 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 643 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 644 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 645 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 646 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 647 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 648 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 649 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 650 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 651 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 652 | pad.tone(NOTE_C5,0.33*1.5); |
yfkwok | 23:4a070960817a | 653 | wait(0.33*1.5); |
yfkwok | 32:58def659f463 | 654 | // bar 3 |
yfkwok | 23:4a070960817a | 655 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 32:58def659f463 | 656 | if (finished == true) {return;} |
yfkwok | 23:4a070960817a | 657 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 658 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 659 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 660 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 661 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 662 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 663 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 664 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 665 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 666 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 667 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 668 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 669 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 670 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 671 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 672 | Thread::wait(330/2); |
yfkwok | 32:58def659f463 | 673 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 32:58def659f463 | 674 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 675 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 676 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 677 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 678 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 679 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 680 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 681 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 682 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 683 | Thread::wait(330/2); |
yfkwok | 32:58def659f463 | 684 | pad.tone(NOTE_AS4,0.33*1.5); |
yfkwok | 32:58def659f463 | 685 | wait(0.33*1.5); |
yfkwok | 32:58def659f463 | 686 | // bar 5 |
yfkwok | 32:58def659f463 | 687 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 32:58def659f463 | 688 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 689 | Thread::wait(330/2); |
yfkwok | 32:58def659f463 | 690 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 691 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 692 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 693 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 694 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 695 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 696 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 697 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 698 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 699 | wait(0.33/2); |
yfkwok | 32:58def659f463 | 700 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 701 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 702 | Thread::wait(330/2); |
yfkwok | 32:58def659f463 | 703 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 704 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 705 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 23:4a070960817a | 706 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 707 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 708 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 709 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 710 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 711 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 712 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 713 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 714 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 715 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 716 | pad.tone(NOTE_C5,0.33*1.5); |
yfkwok | 23:4a070960817a | 717 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 718 | // bar 7 |
yfkwok | 23:4a070960817a | 719 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 32:58def659f463 | 720 | if (finished == true) {return;} |
yfkwok | 23:4a070960817a | 721 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 722 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 723 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 724 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 725 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 726 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 727 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 728 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 729 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 730 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 32:58def659f463 | 731 | if (finished == true) {return;} |
yfkwok | 32:58def659f463 | 732 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 733 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 734 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 735 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 736 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 737 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 23:4a070960817a | 738 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 739 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 740 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 741 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 742 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 743 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 744 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 745 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 32:58def659f463 | 746 | if (finished == true) {return;} |
yfkwok | 23:4a070960817a | 747 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 748 | pad.tone(NOTE_CS5,0.33*1.5); |
yfkwok | 23:4a070960817a | 749 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 750 | |
yfkwok | 23:4a070960817a | 751 | // Loop while state is true |
yfkwok | 23:4a070960817a | 752 | while(!finished){ |
yfkwok | 23:4a070960817a | 753 | // bar 8 |
yfkwok | 23:4a070960817a | 754 | pad.tone(NOTE_DS5,0.33); |
yfkwok | 23:4a070960817a | 755 | wait(0.33); |
yfkwok | 23:4a070960817a | 756 | pad.tone(NOTE_CS5,0.33); |
yfkwok | 23:4a070960817a | 757 | wait(0.33); |
yfkwok | 23:4a070960817a | 758 | pad.tone(NOTE_DS5,0.33); |
yfkwok | 23:4a070960817a | 759 | wait(0.33); |
yfkwok | 23:4a070960817a | 760 | pad.tone(NOTE_E5,0.33/2); |
yfkwok | 23:4a070960817a | 761 | Thread::wait(330/2); |
yfkwok | 26:c60becf3f840 | 762 | // to break out of the function |
yfkwok | 23:4a070960817a | 763 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 764 | pad.tone(NOTE_FS5,0.33); |
yfkwok | 23:4a070960817a | 765 | wait(0.33); |
yfkwok | 23:4a070960817a | 766 | pad.tone(NOTE_E5,0.33); |
yfkwok | 23:4a070960817a | 767 | wait(0.33); |
yfkwok | 23:4a070960817a | 768 | pad.tone(NOTE_DS5,0.33/2); |
yfkwok | 23:4a070960817a | 769 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 770 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 771 | pad.tone(NOTE_CS5,0.33/2); |
yfkwok | 23:4a070960817a | 772 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 773 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 23:4a070960817a | 774 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 775 | pad.tone(NOTE_CS5,0.33/2); |
yfkwok | 23:4a070960817a | 776 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 777 | pad.tone(NOTE_DS5,0.33/2); |
yfkwok | 23:4a070960817a | 778 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 779 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 780 | // bar 10 |
yfkwok | 23:4a070960817a | 781 | pad.tone(NOTE_A4,0.33*2); |
yfkwok | 23:4a070960817a | 782 | wait(0.33*2); |
yfkwok | 23:4a070960817a | 783 | pad.tone(NOTE_CS5,0.33*2); |
yfkwok | 23:4a070960817a | 784 | Thread::wait(330*2); |
yfkwok | 23:4a070960817a | 785 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 786 | pad.tone(NOTE_E5,0.33*2); |
yfkwok | 23:4a070960817a | 787 | wait(0.33*2); |
yfkwok | 23:4a070960817a | 788 | pad.tone(NOTE_CS5,0.33*2); |
yfkwok | 23:4a070960817a | 789 | Thread::wait(330*2); |
yfkwok | 23:4a070960817a | 790 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 791 | // bar 8 |
yfkwok | 23:4a070960817a | 792 | pad.tone(NOTE_DS5,0.33); |
yfkwok | 23:4a070960817a | 793 | wait(0.33); |
yfkwok | 23:4a070960817a | 794 | pad.tone(NOTE_CS5,0.33); |
yfkwok | 23:4a070960817a | 795 | wait(0.33); |
yfkwok | 23:4a070960817a | 796 | pad.tone(NOTE_DS5,0.33); |
yfkwok | 23:4a070960817a | 797 | wait(0.33); |
yfkwok | 23:4a070960817a | 798 | pad.tone(NOTE_E5,0.33/2); |
yfkwok | 23:4a070960817a | 799 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 800 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 801 | pad.tone(NOTE_FS5,0.33); |
yfkwok | 23:4a070960817a | 802 | wait(0.33); |
yfkwok | 23:4a070960817a | 803 | pad.tone(NOTE_E5,0.33); |
yfkwok | 23:4a070960817a | 804 | wait(0.33); |
yfkwok | 23:4a070960817a | 805 | pad.tone(NOTE_DS5,0.33/2); |
yfkwok | 23:4a070960817a | 806 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 807 | pad.tone(NOTE_CS5,0.33/2); |
yfkwok | 23:4a070960817a | 808 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 809 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 23:4a070960817a | 810 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 811 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 812 | pad.tone(NOTE_CS5,0.33/2); |
yfkwok | 23:4a070960817a | 813 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 814 | pad.tone(NOTE_DS5,0.33/2); |
yfkwok | 23:4a070960817a | 815 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 816 | // bar 12 |
yfkwok | 23:4a070960817a | 817 | pad.tone(NOTE_CS5,0.33*2); |
yfkwok | 23:4a070960817a | 818 | wait(0.33*2); |
yfkwok | 23:4a070960817a | 819 | pad.tone(NOTE_B4,0.33*2); |
yfkwok | 23:4a070960817a | 820 | Thread::wait(330*2); |
yfkwok | 23:4a070960817a | 821 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 822 | pad.tone(NOTE_A4,0.33*2); |
yfkwok | 23:4a070960817a | 823 | wait(0.33*2); |
yfkwok | 23:4a070960817a | 824 | pad.tone(NOTE_E5,0.33); |
yfkwok | 23:4a070960817a | 825 | wait(0.33); |
yfkwok | 23:4a070960817a | 826 | pad.tone(NOTE_E5,0.33/2); |
yfkwok | 23:4a070960817a | 827 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 828 | pad.tone(NOTE_CS5,0.33/2); |
yfkwok | 23:4a070960817a | 829 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 830 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 831 | // bar 14 |
yfkwok | 23:4a070960817a | 832 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 833 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 834 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 835 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 836 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 837 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 838 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 839 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 840 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 841 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 842 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 843 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 844 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 845 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 846 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 847 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 848 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 849 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 850 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 851 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 852 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 853 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 854 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 855 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 856 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 857 | // bar 15 |
yfkwok | 23:4a070960817a | 858 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 859 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 860 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 861 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 862 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 863 | pad.tone(NOTE_FS4,0.33/4); |
yfkwok | 23:4a070960817a | 864 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 865 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 866 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 867 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 868 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 869 | pad.tone(NOTE_FS4,0.33/4); |
yfkwok | 23:4a070960817a | 870 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 871 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 872 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 873 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 874 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 875 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 876 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 877 | pad.tone(NOTE_E4,0.25/2); |
yfkwok | 23:4a070960817a | 878 | Thread::wait(250/2); |
yfkwok | 23:4a070960817a | 879 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 880 | pad.tone(NOTE_F4,0.25/2); |
yfkwok | 23:4a070960817a | 881 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 882 | // bar 16 |
yfkwok | 23:4a070960817a | 883 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 884 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 885 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 886 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 887 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 888 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 889 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 890 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 891 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 892 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 893 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 894 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 895 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 896 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 897 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 898 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 899 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 900 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 901 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 902 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 903 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 904 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 905 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 906 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 907 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 908 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 909 | // bar 17 |
yfkwok | 23:4a070960817a | 910 | pad.tone(NOTE_FS4,0.33/4); |
yfkwok | 23:4a070960817a | 911 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 912 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 913 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 914 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 915 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 916 | pad.tone(NOTE_FS4,0.33/4); |
yfkwok | 23:4a070960817a | 917 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 918 | pad.tone(NOTE_E4,0.33/2); |
yfkwok | 23:4a070960817a | 919 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 920 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 921 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 922 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 923 | pad.tone(NOTE_D4,0.33/2); |
yfkwok | 23:4a070960817a | 924 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 925 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 926 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 927 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 928 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 929 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 930 | pad.tone(NOTE_E4,0.33/2); |
yfkwok | 23:4a070960817a | 931 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 932 | // bar 18 |
yfkwok | 23:4a070960817a | 933 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 934 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 935 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 936 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 937 | pad.tone(NOTE_B4,0.33); |
yfkwok | 23:4a070960817a | 938 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 939 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 940 | pad.tone(NOTE_C5,0.33); |
yfkwok | 23:4a070960817a | 941 | wait(0.33); |
yfkwok | 23:4a070960817a | 942 | pad.tone(NOTE_A4,0.33); |
yfkwok | 23:4a070960817a | 943 | wait(0.33); |
yfkwok | 23:4a070960817a | 944 | pad.tone(NOTE_B4,0.33); |
yfkwok | 23:4a070960817a | 945 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 946 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 947 | pad.tone(NOTE_C5,0.33); |
yfkwok | 23:4a070960817a | 948 | wait(0.33); |
yfkwok | 23:4a070960817a | 949 | pad.tone(NOTE_A4,0.33); |
yfkwok | 23:4a070960817a | 950 | wait(0.33); |
yfkwok | 23:4a070960817a | 951 | pad.tone(NOTE_G4,0.33); |
yfkwok | 23:4a070960817a | 952 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 953 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 954 | // bar 19 |
yfkwok | 23:4a070960817a | 955 | pad.tone(NOTE_FS4,0.33*4); |
yfkwok | 23:4a070960817a | 956 | wait(0.33); |
yfkwok | 23:4a070960817a | 957 | pad.tone(NOTE_C4,0.33/4); |
yfkwok | 23:4a070960817a | 958 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 959 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 960 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 961 | pad.tone(NOTE_A3,0.33/4); |
yfkwok | 23:4a070960817a | 962 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 963 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 964 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 965 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 966 | pad.tone(NOTE_C4,0.33/4); |
yfkwok | 23:4a070960817a | 967 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 968 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 969 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 970 | pad.tone(NOTE_A3,0.33/4); |
yfkwok | 23:4a070960817a | 971 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 972 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 973 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 974 | pad.tone(NOTE_C4,0.33/4); |
yfkwok | 23:4a070960817a | 975 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 976 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 977 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 978 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 979 | pad.tone(NOTE_A3,0.33/4); |
yfkwok | 23:4a070960817a | 980 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 981 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 982 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 983 | // bar 20 |
yfkwok | 23:4a070960817a | 984 | pad.tone(NOTE_C4,0.33/4); |
yfkwok | 23:4a070960817a | 985 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 986 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 987 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 988 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 989 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 990 | pad.tone(NOTE_DS4,0.33/4); |
yfkwok | 23:4a070960817a | 991 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 992 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 993 | pad.tone(NOTE_E4,0.33/4); |
yfkwok | 23:4a070960817a | 994 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 995 | pad.tone(NOTE_DS4,0.33/4); |
yfkwok | 23:4a070960817a | 996 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 997 | pad.tone(NOTE_D4,0.33/4); |
yfkwok | 23:4a070960817a | 998 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 999 | pad.tone(NOTE_CS4,0.33/4); |
yfkwok | 23:4a070960817a | 1000 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1001 | pad.tone(NOTE_C4,0.33/4); |
yfkwok | 23:4a070960817a | 1002 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1003 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 1004 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 1005 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1006 | pad.tone(NOTE_AS3,0.33/4); |
yfkwok | 23:4a070960817a | 1007 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1008 | pad.tone(NOTE_A3,0.33/4); |
yfkwok | 23:4a070960817a | 1009 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1010 | pad.tone(NOTE_GS3,0.33/4); |
yfkwok | 23:4a070960817a | 1011 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1012 | pad.tone(NOTE_G3,0.33/4); |
yfkwok | 23:4a070960817a | 1013 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1014 | pad.tone(NOTE_FS3,0.33/4); |
yfkwok | 23:4a070960817a | 1015 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 1016 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1017 | pad.tone(NOTE_G3,0.33/4); |
yfkwok | 23:4a070960817a | 1018 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1019 | // bar 22 |
yfkwok | 23:4a070960817a | 1020 | pad.tone(NOTE_GS3,0.33/4); |
yfkwok | 23:4a070960817a | 1021 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1022 | pad.tone(NOTE_A3,0.33/4); |
yfkwok | 23:4a070960817a | 1023 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1024 | pad.tone(NOTE_AS3,0.33/4); |
yfkwok | 23:4a070960817a | 1025 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1026 | pad.tone(NOTE_B3,0.33/4); |
yfkwok | 23:4a070960817a | 1027 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 1028 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1029 | pad.tone(NOTE_B4,0.33); |
yfkwok | 23:4a070960817a | 1030 | wait(0.33); |
yfkwok | 23:4a070960817a | 1031 | pad.tone(NOTE_C5,0.33); |
yfkwok | 23:4a070960817a | 1032 | wait(0.33); |
yfkwok | 23:4a070960817a | 1033 | pad.tone(NOTE_A4,0.33); |
yfkwok | 23:4a070960817a | 1034 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1035 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1036 | pad.tone(NOTE_B4,0.33); |
yfkwok | 23:4a070960817a | 1037 | wait(0.33); |
yfkwok | 23:4a070960817a | 1038 | pad.tone(NOTE_C5,0.33); |
yfkwok | 23:4a070960817a | 1039 | wait(0.33); |
yfkwok | 23:4a070960817a | 1040 | pad.tone(NOTE_A4,0.33); |
yfkwok | 23:4a070960817a | 1041 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1042 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1043 | pad.tone(NOTE_C5,0.33); |
yfkwok | 23:4a070960817a | 1044 | wait(0.33); |
yfkwok | 23:4a070960817a | 1045 | pad.tone(NOTE_B4,0.33*4); |
yfkwok | 23:4a070960817a | 1046 | wait(0.33*4); |
yfkwok | 23:4a070960817a | 1047 | pad.tone(NOTE_FS5,0.33*4); |
yfkwok | 23:4a070960817a | 1048 | Thread::wait(330*4); |
yfkwok | 23:4a070960817a | 1049 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1050 | // bar 26 |
yfkwok | 23:4a070960817a | 1051 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1052 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1053 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1054 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 1055 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1056 | pad.tone(NOTE_A4,0.33*3); |
yfkwok | 23:4a070960817a | 1057 | wait(0.33*3); |
yfkwok | 23:4a070960817a | 1058 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1059 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1060 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1061 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 1062 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1063 | pad.tone(NOTE_CS5,0.33*3); |
yfkwok | 23:4a070960817a | 1064 | wait(0.33*3); |
yfkwok | 23:4a070960817a | 1065 | pad.tone(NOTE_DS4,0.33); |
yfkwok | 23:4a070960817a | 1066 | wait(0.33); |
yfkwok | 23:4a070960817a | 1067 | pad.tone(NOTE_CS4,0.33); |
yfkwok | 23:4a070960817a | 1068 | wait(0.33); |
yfkwok | 23:4a070960817a | 1069 | pad.tone(NOTE_DS4,0.33); |
yfkwok | 23:4a070960817a | 1070 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1071 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1072 | pad.tone(NOTE_E4,0.33/2); |
yfkwok | 23:4a070960817a | 1073 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1074 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 1075 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1076 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1077 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1078 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1079 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 1080 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1081 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 1082 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1083 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 1084 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1085 | pad.tone(NOTE_B4,0.33/2); |
yfkwok | 23:4a070960817a | 1086 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1087 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 1088 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 1089 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1090 | pad.tone(NOTE_DS4,0.33/2); |
yfkwok | 23:4a070960817a | 1091 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1092 | pad.tone(NOTE_FS4,0.33/2); |
yfkwok | 23:4a070960817a | 1093 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1094 | // bar 30 |
yfkwok | 23:4a070960817a | 1095 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1096 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1097 | pad.tone(NOTE_B3,0.33/2); |
yfkwok | 23:4a070960817a | 1098 | Thread::wait(330/2); |
yfkwok | 23:4a070960817a | 1099 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1100 | pad.tone(NOTE_CS5,0.33*3); |
yfkwok | 23:4a070960817a | 1101 | wait(0.33*3); |
yfkwok | 23:4a070960817a | 1102 | pad.tone(NOTE_A5,0.33*2); |
yfkwok | 23:4a070960817a | 1103 | Thread::wait(330*2); |
yfkwok | 23:4a070960817a | 1104 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1105 | pad.tone(NOTE_E5,0.33*2); |
yfkwok | 23:4a070960817a | 1106 | wait(0.33*2); |
yfkwok | 23:4a070960817a | 1107 | // bar 32 |
yfkwok | 23:4a070960817a | 1108 | pad.tone(NOTE_B5,0.33*4); |
yfkwok | 23:4a070960817a | 1109 | wait(0.33); |
yfkwok | 23:4a070960817a | 1110 | pad.tone(NOTE_E4,0.33); |
yfkwok | 23:4a070960817a | 1111 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1112 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1113 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 1114 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1115 | pad.tone(NOTE_DS4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1116 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1117 | pad.tone(NOTE_FS4,0.33); |
yfkwok | 23:4a070960817a | 1118 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1119 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1120 | pad.tone(NOTE_E4,0.33/2); |
yfkwok | 23:4a070960817a | 1121 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1122 | pad.tone(NOTE_DS4,0.33); |
yfkwok | 23:4a070960817a | 1123 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1124 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1125 | pad.tone(NOTE_E4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1126 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1127 | // bar 34 |
yfkwok | 23:4a070960817a | 1128 | pad.tone(NOTE_DS4,0.33); |
yfkwok | 23:4a070960817a | 1129 | wait(0.33); |
yfkwok | 23:4a070960817a | 1130 | pad.tone(NOTE_E4,0.33); |
yfkwok | 23:4a070960817a | 1131 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1132 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1133 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 1134 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1135 | pad.tone(NOTE_DS4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1136 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1137 | pad.tone(NOTE_FS4,0.33); |
yfkwok | 23:4a070960817a | 1138 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1139 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1140 | pad.tone(NOTE_A4,0.33/2); |
yfkwok | 23:4a070960817a | 1141 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1142 | pad.tone(NOTE_GS4,0.33); |
yfkwok | 23:4a070960817a | 1143 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1144 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1145 | pad.tone(NOTE_G4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1146 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1147 | pad.tone(NOTE_B4,0.33/4); |
yfkwok | 23:4a070960817a | 1148 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1149 | pad.tone(NOTE_DS5,0.33/4); |
yfkwok | 23:4a070960817a | 1150 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1151 | pad.tone(NOTE_FS5,0.33/4); |
yfkwok | 23:4a070960817a | 1152 | wait(0.33/4); |
yfkwok | 23:4a070960817a | 1153 | pad.tone(NOTE_AS5,0.33/4); |
yfkwok | 23:4a070960817a | 1154 | Thread::wait(330/4); |
yfkwok | 23:4a070960817a | 1155 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1156 | // bar 36 |
yfkwok | 23:4a070960817a | 1157 | pad.tone(NOTE_B5,0.33*4); |
yfkwok | 23:4a070960817a | 1158 | wait(0.33); |
yfkwok | 23:4a070960817a | 1159 | pad.tone(NOTE_E4,0.33); |
yfkwok | 23:4a070960817a | 1160 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1161 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1162 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 1163 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1164 | pad.tone(NOTE_DS4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1165 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1166 | pad.tone(NOTE_FS5,0.33); |
yfkwok | 23:4a070960817a | 1167 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1168 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1169 | pad.tone(NOTE_DS4,0.33/2); |
yfkwok | 23:4a070960817a | 1170 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1171 | pad.tone(NOTE_CS4,0.33); |
yfkwok | 23:4a070960817a | 1172 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1173 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1174 | pad.tone(NOTE_C4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1175 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1176 | // bar 38 |
yfkwok | 23:4a070960817a | 1177 | pad.tone(NOTE_A5,0.33*4); |
yfkwok | 23:4a070960817a | 1178 | wait(0.33); |
yfkwok | 23:4a070960817a | 1179 | pad.tone(NOTE_E4,0.33); |
yfkwok | 23:4a070960817a | 1180 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1181 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1182 | pad.tone(NOTE_CS4,0.33/2); |
yfkwok | 23:4a070960817a | 1183 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1184 | pad.tone(NOTE_DS4,0.33*1.5); |
yfkwok | 23:4a070960817a | 1185 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1186 | pad.tone(NOTE_CS6,0.33); |
yfkwok | 23:4a070960817a | 1187 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1188 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1189 | pad.tone(NOTE_A4,0.33/2); |
yfkwok | 23:4a070960817a | 1190 | wait(0.33/2); |
yfkwok | 23:4a070960817a | 1191 | pad.tone(NOTE_GS4,0.33); |
yfkwok | 23:4a070960817a | 1192 | Thread::wait(330); |
yfkwok | 23:4a070960817a | 1193 | if(finished == true) {break;} |
yfkwok | 23:4a070960817a | 1194 | pad.tone(NOTE_A5,0.33*1.5); |
yfkwok | 23:4a070960817a | 1195 | wait(0.33*1.5); |
yfkwok | 23:4a070960817a | 1196 | } |
yfkwok | 1:61b67654ffb7 | 1197 | } |