XJEL2645 (19/20)
/
el17ll
Liu Liting 201199465
Engine/Engine.cpp@13:a57a48e5e256, 2020-05-14 (annotated)
- Committer:
- Ting12138
- Date:
- Thu May 14 15:42:14 2020 +0000
- Revision:
- 13:a57a48e5e256
- Parent:
- 12:3b7811c3502c
the 2645 project
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ting12138 | 12:3b7811c3502c | 1 | #include "Engine.h" |
Ting12138 | 12:3b7811c3502c | 2 | |
Ting12138 | 12:3b7811c3502c | 3 | Engine::Engine() |
Ting12138 | 12:3b7811c3502c | 4 | { |
Ting12138 | 12:3b7811c3502c | 5 | |
Ting12138 | 12:3b7811c3502c | 6 | } |
Ting12138 | 12:3b7811c3502c | 7 | |
Ting12138 | 12:3b7811c3502c | 8 | Engine::~Engine() |
Ting12138 | 12:3b7811c3502c | 9 | { |
Ting12138 | 12:3b7811c3502c | 10 | |
Ting12138 | 12:3b7811c3502c | 11 | } |
Ting12138 | 12:3b7811c3502c | 12 | |
Ting12138 | 12:3b7811c3502c | 13 | void Engine::init(int wall_width,int wall_gap,int foods_bulk,int velocity) { |
Ting12138 | 12:3b7811c3502c | 14 | |
Ting12138 | 13:a57a48e5e256 | 15 | // initialise for the game parameters |
Ting12138 | 12:3b7811c3502c | 16 | _wall_width = wall_width; |
Ting12138 | 13:a57a48e5e256 | 17 | _wall_gap = wall_gap; // the wall gap presents and the distance between the top wall and the bottom wall, which is licked to difficulty |
Ting12138 | 12:3b7811c3502c | 18 | _foods_bulk = foods_bulk; // larger foods means it will have larger area to trigger it "_rocket.add_score();" |
Ting12138 | 12:3b7811c3502c | 19 | _velocity = velocity; |
Ting12138 | 12:3b7811c3502c | 20 | |
Ting12138 | 13:a57a48e5e256 | 21 | // x locations on screen - WIDTH is defined in N5110.h |
Ting12138 | 13:a57a48e5e256 | 22 | _w0x = WIDTH; // there is total 5 types of wall in the game, all are placed in distributed locationss |
Ting12138 | 12:3b7811c3502c | 23 | _w1x = WIDTH + 30; |
Ting12138 | 12:3b7811c3502c | 24 | _w2x = WIDTH + 60; |
Ting12138 | 12:3b7811c3502c | 25 | _w3x = WIDTH + 90; |
Ting12138 | 12:3b7811c3502c | 26 | _w4x = WIDTH + 120; |
Ting12138 | 12:3b7811c3502c | 27 | _rocketx = 8; |
Ting12138 | 12:3b7811c3502c | 28 | _foodsx = WIDTH + 105; |
Ting12138 | 12:3b7811c3502c | 29 | |
Ting12138 | 12:3b7811c3502c | 30 | _w0.init(_w0x,_wall_gap,_wall_width,_velocity); // initiate all walls with random holes |
Ting12138 | 12:3b7811c3502c | 31 | _w1.init(_w1x,_wall_gap,_wall_width,_velocity); |
Ting12138 | 12:3b7811c3502c | 32 | _w2.init(_w2x,_wall_gap,_wall_width,_velocity); |
Ting12138 | 12:3b7811c3502c | 33 | _w3.init(_w3x,_wall_gap,_wall_width,_velocity); |
Ting12138 | 12:3b7811c3502c | 34 | _w4.init(_w4x,_wall_gap,_wall_width,_velocity); |
Ting12138 | 13:a57a48e5e256 | 35 | _rocket.init(_rocketx); // seting the rocket in the middle location |
Ting12138 | 13:a57a48e5e256 | 36 | _foods.init(_foodsx,_foods_bulk,_velocity); // initiate foods bulk and a random locations of the y |
Ting12138 | 12:3b7811c3502c | 37 | } |
Ting12138 | 12:3b7811c3502c | 38 | |
Ting12138 | 13:a57a48e5e256 | 39 | void Engine::read_input(Gamepad &pad) { // reading the joystick finction |
Ting12138 | 12:3b7811c3502c | 40 | |
Ting12138 | 12:3b7811c3502c | 41 | _d = pad.get_direction(); |
Ting12138 | 12:3b7811c3502c | 42 | _mag = pad.get_mag(); |
Ting12138 | 12:3b7811c3502c | 43 | _mapped_coord = pad.get_mapped_coord(); |
Ting12138 | 12:3b7811c3502c | 44 | } |
Ting12138 | 12:3b7811c3502c | 45 | |
Ting12138 | 12:3b7811c3502c | 46 | void Engine::draw(N5110 &lcd) { |
Ting12138 | 13:a57a48e5e256 | 47 | // draw all elements on the LCD buffer |
Ting12138 | 13:a57a48e5e256 | 48 | // the pitch |
Ting12138 | 12:3b7811c3502c | 49 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
Ting12138 | 13:a57a48e5e256 | 50 | // all walls |
Ting12138 | 12:3b7811c3502c | 51 | _w0.draw1(lcd); |
Ting12138 | 12:3b7811c3502c | 52 | _w0.draw2(lcd); |
Ting12138 | 12:3b7811c3502c | 53 | _w1.draw1(lcd); |
Ting12138 | 12:3b7811c3502c | 54 | _w1.draw2(lcd); |
Ting12138 | 12:3b7811c3502c | 55 | _w2.draw1(lcd); |
Ting12138 | 12:3b7811c3502c | 56 | _w2.draw2(lcd); |
Ting12138 | 12:3b7811c3502c | 57 | _w3.draw1(lcd); |
Ting12138 | 12:3b7811c3502c | 58 | _w3.draw2(lcd); |
Ting12138 | 12:3b7811c3502c | 59 | _w4.draw1(lcd); |
Ting12138 | 12:3b7811c3502c | 60 | _w4.draw2(lcd); |
Ting12138 | 12:3b7811c3502c | 61 | // the rocket |
Ting12138 | 12:3b7811c3502c | 62 | _rocket.draw(lcd); |
Ting12138 | 13:a57a48e5e256 | 63 | // all foods |
Ting12138 | 12:3b7811c3502c | 64 | _foods.draw(lcd); |
Ting12138 | 12:3b7811c3502c | 65 | } |
Ting12138 | 12:3b7811c3502c | 66 | |
Ting12138 | 13:a57a48e5e256 | 67 | void Engine::check_score(Gamepad &pad) { //checking the score to trigger and how many leds should be turned on |
Ting12138 | 12:3b7811c3502c | 68 | |
Ting12138 | 13:a57a48e5e256 | 69 | int rocket_score = _rocket.get_final_score(); // get the final score |
Ting12138 | 12:3b7811c3502c | 70 | |
Ting12138 | 13:a57a48e5e256 | 71 | if (rocket_score == 0) { // 7 if statements to the represents 7 conditions |
Ting12138 | 12:3b7811c3502c | 72 | pad.leds_off(); |
Ting12138 | 12:3b7811c3502c | 73 | } |
Ting12138 | 13:a57a48e5e256 | 74 | if (rocket_score == 1) { // when getting one food,you can turn on 1 led |
Ting12138 | 12:3b7811c3502c | 75 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 76 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 77 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 78 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 79 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 80 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 81 | } |
Ting12138 | 13:a57a48e5e256 | 82 | if (rocket_score == 2) { // when you get two foods, you will light lcd1 and lcd6 |
Ting12138 | 12:3b7811c3502c | 83 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 84 | pad.led(2,0.0f); |
Ting12138 | 12:3b7811c3502c | 85 | pad.led(3,0.0f); |
Ting12138 | 12:3b7811c3502c | 86 | pad.led(4,0.0f); |
Ting12138 | 12:3b7811c3502c | 87 | pad.led(5,0.0f); |
Ting12138 | 12:3b7811c3502c | 88 | pad.led(6,1.0f); |
Ting12138 | 12:3b7811c3502c | 89 | } |
Ting12138 | 13:a57a48e5e256 | 90 | if (rocket_score == 3) {// when you get two foods, you will light lcd1, lcd6 and lcd2 |
Ting12138 | 12:3b7811c3502c | 91 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 92 | pad.led(2,1.0f); |
Ting12138 | 12:3b7811c3502c | 93 | pad.led(3,0.0f); |
Ting12138 | 12:3b7811c3502c | 94 | pad.led(4,0.0f); |
Ting12138 | 12:3b7811c3502c | 95 | pad.led(5,0.0f); |
Ting12138 | 12:3b7811c3502c | 96 | pad.led(6,1.0f); |
Ting12138 | 12:3b7811c3502c | 97 | } |
Ting12138 | 13:a57a48e5e256 | 98 | if (rocket_score == 4) {// when you get two foods, you will light led1, led6,led5 and led2 |
Ting12138 | 12:3b7811c3502c | 99 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 100 | pad.led(2,1.0f); |
Ting12138 | 12:3b7811c3502c | 101 | pad.led(3,0.0f); |
Ting12138 | 12:3b7811c3502c | 102 | pad.led(4,0.0f); |
Ting12138 | 12:3b7811c3502c | 103 | pad.led(5,1.0f); |
Ting12138 | 12:3b7811c3502c | 104 | pad.led(6,1.0f); |
Ting12138 | 12:3b7811c3502c | 105 | } |
Ting12138 | 13:a57a48e5e256 | 106 | if (rocket_score == 5) {// when you get two foods, you will light leds except led4 |
Ting12138 | 12:3b7811c3502c | 107 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 108 | pad.led(2,1.0f); |
Ting12138 | 12:3b7811c3502c | 109 | pad.led(3,1.0f); |
Ting12138 | 12:3b7811c3502c | 110 | pad.led(4,0.0f); |
Ting12138 | 12:3b7811c3502c | 111 | pad.led(5,1.0f); |
Ting12138 | 12:3b7811c3502c | 112 | pad.led(6,1.0f); |
Ting12138 | 12:3b7811c3502c | 113 | } |
Ting12138 | 13:a57a48e5e256 | 114 | if (rocket_score == 6) {// when you get two foods, you will light all led |
Ting12138 | 12:3b7811c3502c | 115 | pad.led(1,1.0f); |
Ting12138 | 12:3b7811c3502c | 116 | pad.led(2,1.0f); |
Ting12138 | 12:3b7811c3502c | 117 | pad.led(3,1.0f); |
Ting12138 | 12:3b7811c3502c | 118 | pad.led(4,1.0f); |
Ting12138 | 12:3b7811c3502c | 119 | pad.led(5,1.0f); |
Ting12138 | 12:3b7811c3502c | 120 | pad.led(6,1.0f); |
Ting12138 | 12:3b7811c3502c | 121 | } |
Ting12138 | 12:3b7811c3502c | 122 | |
Ting12138 | 13:a57a48e5e256 | 123 | Vector2D rocket_pos = _rocket.get_locations(); // the goal of this section is checking the contact between the rocket and the food, where the current locations of the rocket and the food is obtained |
Ting12138 | 12:3b7811c3502c | 124 | |
Ting12138 | 13:a57a48e5e256 | 125 | Vector2D foods_pos = _foods.get_locations(); |
Ting12138 | 12:3b7811c3502c | 126 | |
Ting12138 | 12:3b7811c3502c | 127 | if (foods_pos.x <= 1) { // if the food leaves the left side of the screen, replace it to the right side for the next foods retrieval |
Ting12138 | 12:3b7811c3502c | 128 | _foods.replace(); |
Ting12138 | 12:3b7811c3502c | 129 | } |
Ting12138 | 12:3b7811c3502c | 130 | |
Ting12138 | 12:3b7811c3502c | 131 | if ( |
Ting12138 | 12:3b7811c3502c | 132 | (rocket_pos.y + 4 >= foods_pos.y - _foods_bulk) && (rocket_pos.y + 2 <= foods_pos.y + _foods_bulk) // check if rrocket and the foods are overlap |
Ting12138 | 13:a57a48e5e256 | 133 | && //aat the bottom |
Ting12138 | 12:3b7811c3502c | 134 | (rocket_pos.x + 10 >= foods_pos.x) && (rocket_pos.x + 10 <= foods_pos.x + 1) //right |
Ting12138 | 12:3b7811c3502c | 135 | ) { |
Ting12138 | 13:a57a48e5e256 | 136 | // if it happen this situation , fixing locations and reflecting x velocity |
Ting12138 | 12:3b7811c3502c | 137 | _rocket.add_score(); |
Ting12138 | 12:3b7811c3502c | 138 | pad.tone(550.0,0.25); |
Ting12138 | 12:3b7811c3502c | 139 | wait(0.25); |
Ting12138 | 12:3b7811c3502c | 140 | pad.tone(1500.0,0.25); |
Ting12138 | 12:3b7811c3502c | 141 | wait(0.25); |
Ting12138 | 12:3b7811c3502c | 142 | } |
Ting12138 | 12:3b7811c3502c | 143 | } |
Ting12138 | 12:3b7811c3502c | 144 | |
Ting12138 | 12:3b7811c3502c | 145 | |
Ting12138 | 12:3b7811c3502c | 146 | void Engine::update(Gamepad &pad) { |
Ting12138 | 12:3b7811c3502c | 147 | |
Ting12138 | 12:3b7811c3502c | 148 | //It's important to check that the walls, rockets, and food are updated before the collision, so that it can be fixed before the new food is updated |
Ting12138 | 12:3b7811c3502c | 149 | _w0.update(); |
Ting12138 | 12:3b7811c3502c | 150 | _w1.update(); |
Ting12138 | 12:3b7811c3502c | 151 | _w2.update(); |
Ting12138 | 12:3b7811c3502c | 152 | _w3.update(); |
Ting12138 | 12:3b7811c3502c | 153 | _w4.update(); |
Ting12138 | 12:3b7811c3502c | 154 | _rocket.replace(_d,_mag,_mapped_coord); |
Ting12138 | 12:3b7811c3502c | 155 | _foods.update(); |
Ting12138 | 12:3b7811c3502c | 156 | collision(pad); |
Ting12138 | 12:3b7811c3502c | 157 | check_score(pad); |
Ting12138 | 12:3b7811c3502c | 158 | } |
Ting12138 | 12:3b7811c3502c | 159 | |
Ting12138 | 12:3b7811c3502c | 160 | void Engine::collision(Gamepad &pad) { |
Ting12138 | 12:3b7811c3502c | 161 | |
Ting12138 | 13:a57a48e5e256 | 162 | // reading the right locations of rocket |
Ting12138 | 13:a57a48e5e256 | 163 | Vector2D rocket_pos = _rocket.get_locations(); |
Ting12138 | 12:3b7811c3502c | 164 | |
Ting12138 | 13:a57a48e5e256 | 165 | //read all of these locationss of the FIVE wall |
Ting12138 | 12:3b7811c3502c | 166 | int w0_x = _w0.get_x(); |
Ting12138 | 12:3b7811c3502c | 167 | int w1_x = _w1.get_x(); |
Ting12138 | 12:3b7811c3502c | 168 | int w2_x = _w2.get_x(); |
Ting12138 | 12:3b7811c3502c | 169 | int w3_x = _w3.get_x(); |
Ting12138 | 12:3b7811c3502c | 170 | int w4_x = _w4.get_x(); |
Ting12138 | 12:3b7811c3502c | 171 | |
Ting12138 | 13:a57a48e5e256 | 172 | if (w0_x <= 1) { // When the rocket passes behind the wall, it will reset to its original locations to continue the game |
Ting12138 | 12:3b7811c3502c | 173 | _w0.reset(); |
Ting12138 | 12:3b7811c3502c | 174 | } |
Ting12138 | 12:3b7811c3502c | 175 | if (w1_x <= 1) { |
Ting12138 | 12:3b7811c3502c | 176 | _w1.reset(); |
Ting12138 | 12:3b7811c3502c | 177 | } |
Ting12138 | 12:3b7811c3502c | 178 | if (w2_x <= 1) { |
Ting12138 | 12:3b7811c3502c | 179 | _w2.reset(); |
Ting12138 | 12:3b7811c3502c | 180 | } |
Ting12138 | 12:3b7811c3502c | 181 | if (w3_x <= 1) { |
Ting12138 | 12:3b7811c3502c | 182 | _w3.reset(); |
Ting12138 | 12:3b7811c3502c | 183 | } |
Ting12138 | 12:3b7811c3502c | 184 | if (w4_x <= 1) { |
Ting12138 | 12:3b7811c3502c | 185 | _w4.reset(); |
Ting12138 | 12:3b7811c3502c | 186 | } |
Ting12138 | 12:3b7811c3502c | 187 | |
Ting12138 | 12:3b7811c3502c | 188 | int w0_height = _w0.get_height(); // get the specific, random height for each of the walls |
Ting12138 | 12:3b7811c3502c | 189 | int w1_height = _w1.get_height(); |
Ting12138 | 12:3b7811c3502c | 190 | int w2_height = _w2.get_height(); |
Ting12138 | 12:3b7811c3502c | 191 | int w3_height = _w3.get_height(); |
Ting12138 | 12:3b7811c3502c | 192 | int w4_height = _w4.get_height(); |
Ting12138 | 12:3b7811c3502c | 193 | |
Ting12138 | 12:3b7811c3502c | 194 | if (( |
Ting12138 | 12:3b7811c3502c | 195 | (rocket_pos.y + 5 >= 0) && (rocket_pos.y + 1 <= w0_height) && // check all the top wall corner collision and the bottom for all the walls |
Ting12138 | 12:3b7811c3502c | 196 | (rocket_pos.x + 10 >= _w0.get_x()) && (rocket_pos.x + 10 <= _w0.get_x() + 1) // left and right collisions |
Ting12138 | 12:3b7811c3502c | 197 | ) || ( |
Ting12138 | 12:3b7811c3502c | 198 | (rocket_pos.y + 5 >= 0) && (rocket_pos.y + 1 <= w1_height) && |
Ting12138 | 12:3b7811c3502c | 199 | (rocket_pos.x + 10 >= _w1.get_x()) && (rocket_pos.x + 10 <= _w1.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 200 | ) || ( |
Ting12138 | 12:3b7811c3502c | 201 | (rocket_pos.y + 5 >= 0) && (rocket_pos.x + 1 <= w2_height) && |
Ting12138 | 12:3b7811c3502c | 202 | (rocket_pos.x + 10 >= _w2.get_x()) && (rocket_pos.x + 10 <= _w2.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 203 | ) || ( |
Ting12138 | 12:3b7811c3502c | 204 | (rocket_pos.y + 5 >= 0) && (rocket_pos.y + 1 <= w3_height) && |
Ting12138 | 12:3b7811c3502c | 205 | (rocket_pos.x + 10 >= _w3.get_x()) && (rocket_pos.x + 10 <= _w3.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 206 | ) || ( |
Ting12138 | 12:3b7811c3502c | 207 | (rocket_pos.y + 5 >= 0) && (rocket_pos.y + 1 <= w4_height) && |
Ting12138 | 12:3b7811c3502c | 208 | (rocket_pos.x + 10 >= _w4.get_x()) && (rocket_pos.x + 10 <= _w4.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 209 | ) |
Ting12138 | 12:3b7811c3502c | 210 | ) { |
Ting12138 | 12:3b7811c3502c | 211 | _rocket.lose_score(); // if collision does happen, foods are lost because of the unnecessary time of interference |
Ting12138 | 12:3b7811c3502c | 212 | |
Ting12138 | 12:3b7811c3502c | 213 | pad.tone(130.0,0.1); // sad sound playing |
Ting12138 | 12:3b7811c3502c | 214 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 215 | pad.tone(230.0,0.1); |
Ting12138 | 12:3b7811c3502c | 216 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 217 | pad.tone(330.0,0.1); |
Ting12138 | 12:3b7811c3502c | 218 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 219 | pad.tone(430.0,0.1); |
Ting12138 | 12:3b7811c3502c | 220 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 221 | pad.tone(530.0,0.1); |
Ting12138 | 12:3b7811c3502c | 222 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 223 | } |
Ting12138 | 12:3b7811c3502c | 224 | |
Ting12138 | 12:3b7811c3502c | 225 | if (( |
Ting12138 | 12:3b7811c3502c | 226 | (rocket_pos.y + 5 >= _wall_gap + w0_height) && (rocket_pos.y + 1 <= HEIGHT) && // check collisions for the bottom wall |
Ting12138 | 12:3b7811c3502c | 227 | (rocket_pos.x + 10 >= _w0.get_x()) && (rocket_pos.x + 10 <= _w0.get_x() + 1) // left and right side |
Ting12138 | 12:3b7811c3502c | 228 | ) || ( |
Ting12138 | 12:3b7811c3502c | 229 | (rocket_pos.y + 5 >= _wall_gap + w1_height) && (rocket_pos.y + 1 <= HEIGHT) && |
Ting12138 | 12:3b7811c3502c | 230 | (rocket_pos.x + 10 >= _w1.get_x()) && (rocket_pos.x + 10 <= _w1.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 231 | ) || ( |
Ting12138 | 12:3b7811c3502c | 232 | (rocket_pos.y + 5 >= _wall_gap + w2_height) && (rocket_pos.y + 1 <= HEIGHT) && |
Ting12138 | 12:3b7811c3502c | 233 | (rocket_pos.x + 10 >= _w2.get_x()) && (rocket_pos.x + 10 <= _w2.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 234 | ) || ( |
Ting12138 | 12:3b7811c3502c | 235 | (rocket_pos.y + 5 >= _wall_gap + w3_height) && (rocket_pos.y + 1 <= HEIGHT) && |
Ting12138 | 12:3b7811c3502c | 236 | (rocket_pos.x + 10 >= _w3.get_x()) && (rocket_pos.x + 10 <= _w3.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 237 | ) || ( |
Ting12138 | 12:3b7811c3502c | 238 | (rocket_pos.y + 5 >= _wall_gap + w4_height) && (rocket_pos.y + 1 <= HEIGHT) && |
Ting12138 | 12:3b7811c3502c | 239 | (rocket_pos.x + 10 >= _w4.get_x()) && (rocket_pos.x + 10 <= _w4.get_x() + 1) |
Ting12138 | 12:3b7811c3502c | 240 | ) |
Ting12138 | 12:3b7811c3502c | 241 | ) { |
Ting12138 | 12:3b7811c3502c | 242 | _rocket.lose_score(); // score lost |
Ting12138 | 12:3b7811c3502c | 243 | |
Ting12138 | 12:3b7811c3502c | 244 | pad.tone(100.0,0.1); // sad sound |
Ting12138 | 12:3b7811c3502c | 245 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 246 | pad.tone(200.0,0.1); |
Ting12138 | 12:3b7811c3502c | 247 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 248 | pad.tone(300.0,0.1); |
Ting12138 | 12:3b7811c3502c | 249 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 250 | pad.tone(400.0,0.1); |
Ting12138 | 12:3b7811c3502c | 251 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 252 | pad.tone(500.0,0.1); |
Ting12138 | 12:3b7811c3502c | 253 | wait(0.1); |
Ting12138 | 12:3b7811c3502c | 254 | } |
Ting12138 | 12:3b7811c3502c | 255 | } |
Ting12138 | 12:3b7811c3502c | 256 | |
Ting12138 | 12:3b7811c3502c | 257 | |
Ting12138 | 12:3b7811c3502c | 258 | |
Ting12138 | 13:a57a48e5e256 | 259 | int Engine::get_final_score() { // get thefinal score for the main function to determine the ending |
Ting12138 | 12:3b7811c3502c | 260 | return _rocket.get_final_score(); |
Ting12138 | 12:3b7811c3502c | 261 | } |