Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Thu May 09 12:10:41 2019 +0000
Revision:
50:9fc8edf722a8
Final Submission. I have read and agreed with Statement of Academic Integrity

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 50:9fc8edf722a8 1 #include "mbed.h"
adambakerwa 50:9fc8edf722a8 2 #include "Gamepad.h"
adambakerwa 50:9fc8edf722a8 3 #include "N5110.h"
adambakerwa 50:9fc8edf722a8 4 #include "Levels.h"
adambakerwa 50:9fc8edf722a8 5
adambakerwa 50:9fc8edf722a8 6
adambakerwa 50:9fc8edf722a8 7
adambakerwa 50:9fc8edf722a8 8 // nothing doing in the constructor and destructor
adambakerwa 50:9fc8edf722a8 9 Levels::Levels()
adambakerwa 50:9fc8edf722a8 10 {
adambakerwa 50:9fc8edf722a8 11
adambakerwa 50:9fc8edf722a8 12 }
adambakerwa 50:9fc8edf722a8 13
adambakerwa 50:9fc8edf722a8 14 Levels::~Levels()
adambakerwa 50:9fc8edf722a8 15 {
adambakerwa 50:9fc8edf722a8 16
adambakerwa 50:9fc8edf722a8 17 }
adambakerwa 50:9fc8edf722a8 18
adambakerwa 50:9fc8edf722a8 19
adambakerwa 50:9fc8edf722a8 20 //initializes all variables and pos struct.
adambakerwa 50:9fc8edf722a8 21 Pos Levels::init(Pos pos)
adambakerwa 50:9fc8edf722a8 22 {
adambakerwa 50:9fc8edf722a8 23
adambakerwa 50:9fc8edf722a8 24 pos = init_hoz1(pos); //initialises hoz1 part of struct
adambakerwa 50:9fc8edf722a8 25 pos = init_hoz2(pos); //initialises hoz2 part of struct
adambakerwa 50:9fc8edf722a8 26 pos = init_ver1(pos); //initialises ver1 part of struct
adambakerwa 50:9fc8edf722a8 27 pos = init_ver2(pos); //initialises ver2 part of struct
adambakerwa 50:9fc8edf722a8 28 pos = init_spike(pos); //initialises spike part of struct
adambakerwa 50:9fc8edf722a8 29
adambakerwa 50:9fc8edf722a8 30 init_counter1(); //initialises counter1
adambakerwa 50:9fc8edf722a8 31 init_counter2(); //initialises counter2
adambakerwa 50:9fc8edf722a8 32
adambakerwa 50:9fc8edf722a8 33 return pos;
adambakerwa 50:9fc8edf722a8 34 }
adambakerwa 50:9fc8edf722a8 35
adambakerwa 50:9fc8edf722a8 36
adambakerwa 50:9fc8edf722a8 37 //initializes data for horizontal moving platform 1
adambakerwa 50:9fc8edf722a8 38 Pos Levels::init_hoz1(Pos pos)
adambakerwa 50:9fc8edf722a8 39 {
adambakerwa 50:9fc8edf722a8 40 pos.x = 0; //x cord
adambakerwa 50:9fc8edf722a8 41 pos.y = 0; //y cord
adambakerwa 50:9fc8edf722a8 42 pos.d = 0; //dircection
adambakerwa 50:9fc8edf722a8 43 pos.c = 0; //counter
adambakerwa 50:9fc8edf722a8 44 pos.l = 0; //length
adambakerwa 50:9fc8edf722a8 45 pos.h = 0; //height
adambakerwa 50:9fc8edf722a8 46
adambakerwa 50:9fc8edf722a8 47 return pos;
adambakerwa 50:9fc8edf722a8 48 }
adambakerwa 50:9fc8edf722a8 49
adambakerwa 50:9fc8edf722a8 50
adambakerwa 50:9fc8edf722a8 51 //initializes data for horizontal moving platform 2
adambakerwa 50:9fc8edf722a8 52 Pos Levels::init_hoz2(Pos pos)
adambakerwa 50:9fc8edf722a8 53 {
adambakerwa 50:9fc8edf722a8 54 pos.x2 = 0; //x cord
adambakerwa 50:9fc8edf722a8 55 pos.y2 = 0; //y cord
adambakerwa 50:9fc8edf722a8 56 pos.d2 = 0; //dircection
adambakerwa 50:9fc8edf722a8 57 pos.c2 = 0; //counter
adambakerwa 50:9fc8edf722a8 58 pos.l2 = 0; //length
adambakerwa 50:9fc8edf722a8 59 pos.h2 = 0; //height
adambakerwa 50:9fc8edf722a8 60
adambakerwa 50:9fc8edf722a8 61 return pos;
adambakerwa 50:9fc8edf722a8 62 }
adambakerwa 50:9fc8edf722a8 63
adambakerwa 50:9fc8edf722a8 64
adambakerwa 50:9fc8edf722a8 65 //initializes data for vertical moving platform 1
adambakerwa 50:9fc8edf722a8 66 Pos Levels::init_ver1(Pos pos)
adambakerwa 50:9fc8edf722a8 67 {
adambakerwa 50:9fc8edf722a8 68 pos.vx = 0; //x cord
adambakerwa 50:9fc8edf722a8 69 pos.vy = 0; //y cord
adambakerwa 50:9fc8edf722a8 70 pos.vd = 0; //dircection
adambakerwa 50:9fc8edf722a8 71 pos.vc = 0; //counter
adambakerwa 50:9fc8edf722a8 72 pos.vl = 0; //length
adambakerwa 50:9fc8edf722a8 73 pos.vh = 0; //height
adambakerwa 50:9fc8edf722a8 74
adambakerwa 50:9fc8edf722a8 75 return pos;
adambakerwa 50:9fc8edf722a8 76 }
adambakerwa 50:9fc8edf722a8 77
adambakerwa 50:9fc8edf722a8 78
adambakerwa 50:9fc8edf722a8 79 //initializes data for vertical moving platform 1
adambakerwa 50:9fc8edf722a8 80 Pos Levels::init_ver2(Pos pos)
adambakerwa 50:9fc8edf722a8 81 {
adambakerwa 50:9fc8edf722a8 82 pos.vx2 = 0; //x cord
adambakerwa 50:9fc8edf722a8 83 pos.vy2 = 0; //y cprd
adambakerwa 50:9fc8edf722a8 84 pos.vd2 = 0; //dircection
adambakerwa 50:9fc8edf722a8 85 pos.vc2 = 0; //counter
adambakerwa 50:9fc8edf722a8 86 pos.vl2 = 0; //length
adambakerwa 50:9fc8edf722a8 87 pos.vh2 = 0; //heighht
adambakerwa 50:9fc8edf722a8 88
adambakerwa 50:9fc8edf722a8 89 return pos;
adambakerwa 50:9fc8edf722a8 90 }
adambakerwa 50:9fc8edf722a8 91
adambakerwa 50:9fc8edf722a8 92
adambakerwa 50:9fc8edf722a8 93 //initializes data for spikes
adambakerwa 50:9fc8edf722a8 94 Pos Levels::init_spike(Pos pos)
adambakerwa 50:9fc8edf722a8 95 {
adambakerwa 50:9fc8edf722a8 96 pos.sx = 0;
adambakerwa 50:9fc8edf722a8 97 pos.sy = 0;
adambakerwa 50:9fc8edf722a8 98 pos.sl = 0;
adambakerwa 50:9fc8edf722a8 99
adambakerwa 50:9fc8edf722a8 100 return pos;
adambakerwa 50:9fc8edf722a8 101 }
adambakerwa 50:9fc8edf722a8 102
adambakerwa 50:9fc8edf722a8 103
adambakerwa 50:9fc8edf722a8 104 //initializes counter 1
adambakerwa 50:9fc8edf722a8 105 void Levels::init_counter1()
adambakerwa 50:9fc8edf722a8 106 {
adambakerwa 50:9fc8edf722a8 107 _counter1 = 0;
adambakerwa 50:9fc8edf722a8 108
adambakerwa 50:9fc8edf722a8 109 }
adambakerwa 50:9fc8edf722a8 110
adambakerwa 50:9fc8edf722a8 111
adambakerwa 50:9fc8edf722a8 112 //initializes counter 2
adambakerwa 50:9fc8edf722a8 113 void Levels::init_counter2()
adambakerwa 50:9fc8edf722a8 114 {
adambakerwa 50:9fc8edf722a8 115 _counter2 = 0;
adambakerwa 50:9fc8edf722a8 116
adambakerwa 50:9fc8edf722a8 117 }
adambakerwa 50:9fc8edf722a8 118
adambakerwa 50:9fc8edf722a8 119
adambakerwa 50:9fc8edf722a8 120 //Creates a horizontal moving platform, and returns cordinates to pos struct
adambakerwa 50:9fc8edf722a8 121 Pos Levels::moving_platform_hoz(N5110 &lcd, Pos pos, int x, int y, int w, int h, int dx, int s) //x cord, y cord, width, hight, move too point, initial starting point.
adambakerwa 50:9fc8edf722a8 122 {
adambakerwa 50:9fc8edf722a8 123
adambakerwa 50:9fc8edf722a8 124 if (pos.c == 0) { //sets counter to start point on first run,
adambakerwa 50:9fc8edf722a8 125 pos.c = s; //pos.c never returns to 0, so it only happens when the level loads
adambakerwa 50:9fc8edf722a8 126 }
adambakerwa 50:9fc8edf722a8 127
adambakerwa 50:9fc8edf722a8 128 if (pos.d == 0) { //if direction is 0, move right
adambakerwa 50:9fc8edf722a8 129 pos.c++;
adambakerwa 50:9fc8edf722a8 130 } else { //if direction is 1, move left
adambakerwa 50:9fc8edf722a8 131 pos.c--;
adambakerwa 50:9fc8edf722a8 132 }
adambakerwa 50:9fc8edf722a8 133
adambakerwa 50:9fc8edf722a8 134 if (pos.c == dx || pos.c == 1 ) { //when moving platform meets dx (move to point) direction pivots,
adambakerwa 50:9fc8edf722a8 135 pos.d = !pos.d; //same again, when moving platform reaches 1
adambakerwa 50:9fc8edf722a8 136 }
adambakerwa 50:9fc8edf722a8 137
adambakerwa 50:9fc8edf722a8 138 pos.x = x + pos.c; //pass x cord + counter to pos struct
adambakerwa 50:9fc8edf722a8 139 pos.y = y; //pass y cord to pos struct
adambakerwa 50:9fc8edf722a8 140 pos.l = w; //pass width to pos struct
adambakerwa 50:9fc8edf722a8 141
adambakerwa 50:9fc8edf722a8 142
adambakerwa 50:9fc8edf722a8 143 lcd.drawLine(pos.x, pos.y, pos.x + w, pos.y, 1); //draw the moving platform using specified width and height parameters
adambakerwa 50:9fc8edf722a8 144 lcd.drawLine(pos.x, pos.y+h, pos.x + w, pos.y+h, 1);
adambakerwa 50:9fc8edf722a8 145 lcd.drawLine(pos.x, pos.y, pos.x, pos.y+h, 1);
adambakerwa 50:9fc8edf722a8 146 lcd.drawLine(pos.x+w, pos.y, pos.x +w, pos.y+h, 1);
adambakerwa 50:9fc8edf722a8 147
adambakerwa 50:9fc8edf722a8 148 return pos; //return pos (the position and state of the moving platform)
adambakerwa 50:9fc8edf722a8 149 }
adambakerwa 50:9fc8edf722a8 150
adambakerwa 50:9fc8edf722a8 151
adambakerwa 50:9fc8edf722a8 152 //Creates a vertical moving platform, and returns cordinates to pos struct
adambakerwa 50:9fc8edf722a8 153 Pos Levels::moving_platform_ver(N5110 &lcd, Pos pos, int x, int y, int h, int w, int dx, int s) //x cord, y cord, width, hight, move too point, initial starting point.
adambakerwa 50:9fc8edf722a8 154 {
adambakerwa 50:9fc8edf722a8 155 if (pos.c == 0) { //sets counter to start point on first run,
adambakerwa 50:9fc8edf722a8 156 pos.c = s; //pos.c never returns to 0, so it only happens when the level loads
adambakerwa 50:9fc8edf722a8 157 }
adambakerwa 50:9fc8edf722a8 158
adambakerwa 50:9fc8edf722a8 159 if (pos.d == 0) { //if direction is 0, move down
adambakerwa 50:9fc8edf722a8 160 pos.c++;
adambakerwa 50:9fc8edf722a8 161 } else { //if direction is 1, move up
adambakerwa 50:9fc8edf722a8 162 pos.c--;
adambakerwa 50:9fc8edf722a8 163 }
adambakerwa 50:9fc8edf722a8 164
adambakerwa 50:9fc8edf722a8 165 if (pos.c == dx || pos.c == 1 ) { //when moving platform meets dx (move to point) direction pivots,
adambakerwa 50:9fc8edf722a8 166 pos.d = !pos.d; //same again, when moving platform reaches 1
adambakerwa 50:9fc8edf722a8 167 }
adambakerwa 50:9fc8edf722a8 168
adambakerwa 50:9fc8edf722a8 169 pos.x = x; //pass x cord to pos struct
adambakerwa 50:9fc8edf722a8 170 pos.y = y + pos.c; //pass y cord + counter to pos struct
adambakerwa 50:9fc8edf722a8 171 pos.l = w; //pass width to pos struct
adambakerwa 50:9fc8edf722a8 172 pos.h = h; //pass height to pos struct
adambakerwa 50:9fc8edf722a8 173
adambakerwa 50:9fc8edf722a8 174 lcd.drawLine(pos.x, pos.y, pos.x, pos.y+h, 1); //draw the moving platform using specified width and height parameters
adambakerwa 50:9fc8edf722a8 175 lcd.drawLine(pos.x, pos.y, pos.x+w, pos.y, 1);
adambakerwa 50:9fc8edf722a8 176 lcd.drawLine(pos.x+w, pos.y, pos.x+w, pos.y+h, 1);
adambakerwa 50:9fc8edf722a8 177 lcd.drawLine(pos.x, pos.y+h, pos.x+w, pos.y+h, 1);
adambakerwa 50:9fc8edf722a8 178
adambakerwa 50:9fc8edf722a8 179 return pos; //return pos (the position and state of the moving platform)
adambakerwa 50:9fc8edf722a8 180 }
adambakerwa 50:9fc8edf722a8 181
adambakerwa 50:9fc8edf722a8 182
adambakerwa 50:9fc8edf722a8 183 //print a singular spike at x, y
adambakerwa 50:9fc8edf722a8 184 void Levels::spike_up(N5110 &lcd, int x, int y)
adambakerwa 50:9fc8edf722a8 185 {
adambakerwa 50:9fc8edf722a8 186
adambakerwa 50:9fc8edf722a8 187 lcd.setPixel(x, y, true);
adambakerwa 50:9fc8edf722a8 188 lcd.setPixel(x+1, y-1, true);
adambakerwa 50:9fc8edf722a8 189 lcd.setPixel(x+1, y-2, true);
adambakerwa 50:9fc8edf722a8 190 lcd.setPixel(x+2, y, true);
adambakerwa 50:9fc8edf722a8 191 }
adambakerwa 50:9fc8edf722a8 192
adambakerwa 50:9fc8edf722a8 193
adambakerwa 50:9fc8edf722a8 194 //print a row of spikes of 'n' length, at x y
adambakerwa 50:9fc8edf722a8 195 Pos Levels::spike_row_up(N5110 &lcd, Pos pos, int x, int y, int n)
adambakerwa 50:9fc8edf722a8 196 {
adambakerwa 50:9fc8edf722a8 197
adambakerwa 50:9fc8edf722a8 198 for (int i = 0; i < n; i++) { //for n times,
adambakerwa 50:9fc8edf722a8 199 spike_up(lcd, x+i*2, y); //draw a spike
adambakerwa 50:9fc8edf722a8 200 }
adambakerwa 50:9fc8edf722a8 201
adambakerwa 50:9fc8edf722a8 202 pos.sx = x; //pass cordinatres to pos struct
adambakerwa 50:9fc8edf722a8 203 pos.sy = y; //pass cordinates to pos struct
adambakerwa 50:9fc8edf722a8 204 pos.sl = n*2 +1; //pass cordinates to pos struct
adambakerwa 50:9fc8edf722a8 205
adambakerwa 50:9fc8edf722a8 206 return pos;
adambakerwa 50:9fc8edf722a8 207 }
adambakerwa 50:9fc8edf722a8 208
adambakerwa 50:9fc8edf722a8 209
adambakerwa 50:9fc8edf722a8 210 //depending on input, print following levels
adambakerwa 50:9fc8edf722a8 211 Pos Levels::what_level(N5110 &lcd, int level)
adambakerwa 50:9fc8edf722a8 212 {
adambakerwa 50:9fc8edf722a8 213 switch (level) {
adambakerwa 50:9fc8edf722a8 214 case 0:
adambakerwa 50:9fc8edf722a8 215 _pos = level_zero(lcd);
adambakerwa 50:9fc8edf722a8 216 break;
adambakerwa 50:9fc8edf722a8 217 case 1:
adambakerwa 50:9fc8edf722a8 218 _pos = level_one(lcd);
adambakerwa 50:9fc8edf722a8 219 break;
adambakerwa 50:9fc8edf722a8 220 case 2:
adambakerwa 50:9fc8edf722a8 221 _pos = level_two(lcd);
adambakerwa 50:9fc8edf722a8 222 break;
adambakerwa 50:9fc8edf722a8 223 case 3:
adambakerwa 50:9fc8edf722a8 224 _pos = level_three(lcd);
adambakerwa 50:9fc8edf722a8 225 break;
adambakerwa 50:9fc8edf722a8 226 case 4:
adambakerwa 50:9fc8edf722a8 227 _pos = level_four(lcd);
adambakerwa 50:9fc8edf722a8 228 break;
adambakerwa 50:9fc8edf722a8 229 case 5:
adambakerwa 50:9fc8edf722a8 230 _pos = level_five(lcd);
adambakerwa 50:9fc8edf722a8 231 break;
adambakerwa 50:9fc8edf722a8 232 case 6:
adambakerwa 50:9fc8edf722a8 233 _pos = level_six(lcd);
adambakerwa 50:9fc8edf722a8 234 break;
adambakerwa 50:9fc8edf722a8 235 case 7:
adambakerwa 50:9fc8edf722a8 236 _pos = level_seven(lcd);
adambakerwa 50:9fc8edf722a8 237 break;
adambakerwa 50:9fc8edf722a8 238 case 8:
adambakerwa 50:9fc8edf722a8 239 _pos = level_eight(lcd);
adambakerwa 50:9fc8edf722a8 240 break;
adambakerwa 50:9fc8edf722a8 241 case 9:
adambakerwa 50:9fc8edf722a8 242 _pos = level_nine(lcd);
adambakerwa 50:9fc8edf722a8 243 break;
adambakerwa 50:9fc8edf722a8 244 case 10:
adambakerwa 50:9fc8edf722a8 245 _pos = level_ten(lcd);
adambakerwa 50:9fc8edf722a8 246 break;
adambakerwa 50:9fc8edf722a8 247 default:
adambakerwa 50:9fc8edf722a8 248 exit(1);
adambakerwa 50:9fc8edf722a8 249 break;
adambakerwa 50:9fc8edf722a8 250 }
adambakerwa 50:9fc8edf722a8 251 return _pos;
adambakerwa 50:9fc8edf722a8 252 }
adambakerwa 50:9fc8edf722a8 253
adambakerwa 50:9fc8edf722a8 254
adambakerwa 50:9fc8edf722a8 255 //transfer hoz1 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 256 Pos Levels::pass_data_hoz1(Pos pos, Pos hoz)
adambakerwa 50:9fc8edf722a8 257 {
adambakerwa 50:9fc8edf722a8 258 pos.x = hoz.x;
adambakerwa 50:9fc8edf722a8 259 pos.y = hoz.y;
adambakerwa 50:9fc8edf722a8 260 pos.d = hoz.d;
adambakerwa 50:9fc8edf722a8 261 pos.c = hoz.c;
adambakerwa 50:9fc8edf722a8 262 pos.l = hoz.l;
adambakerwa 50:9fc8edf722a8 263 pos.h = hoz.h;
adambakerwa 50:9fc8edf722a8 264
adambakerwa 50:9fc8edf722a8 265 return pos;
adambakerwa 50:9fc8edf722a8 266 }
adambakerwa 50:9fc8edf722a8 267
adambakerwa 50:9fc8edf722a8 268
adambakerwa 50:9fc8edf722a8 269 //transfer hoz2 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 270 Pos Levels::pass_data_hoz2(Pos pos, Pos hoz2)
adambakerwa 50:9fc8edf722a8 271 {
adambakerwa 50:9fc8edf722a8 272 pos.x2 = hoz2.x;
adambakerwa 50:9fc8edf722a8 273 pos.y2 = hoz2.y;
adambakerwa 50:9fc8edf722a8 274 pos.d2 = hoz2.d;
adambakerwa 50:9fc8edf722a8 275 pos.c2 = hoz2.c;
adambakerwa 50:9fc8edf722a8 276 pos.l2 = hoz2.l;
adambakerwa 50:9fc8edf722a8 277 pos.h2 = hoz2.h;
adambakerwa 50:9fc8edf722a8 278
adambakerwa 50:9fc8edf722a8 279 return pos;
adambakerwa 50:9fc8edf722a8 280 }
adambakerwa 50:9fc8edf722a8 281
adambakerwa 50:9fc8edf722a8 282
adambakerwa 50:9fc8edf722a8 283 //transfer ver into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 284 Pos Levels::pass_data_ver1(Pos pos, Pos ver)
adambakerwa 50:9fc8edf722a8 285 {
adambakerwa 50:9fc8edf722a8 286 pos.vx = ver.x;
adambakerwa 50:9fc8edf722a8 287 pos.vy = ver.y;
adambakerwa 50:9fc8edf722a8 288 pos.vd = ver.d;
adambakerwa 50:9fc8edf722a8 289 pos.vc = ver.c;
adambakerwa 50:9fc8edf722a8 290 pos.vl = ver.l;
adambakerwa 50:9fc8edf722a8 291 pos.vh = ver.h;
adambakerwa 50:9fc8edf722a8 292 return pos;
adambakerwa 50:9fc8edf722a8 293 }
adambakerwa 50:9fc8edf722a8 294
adambakerwa 50:9fc8edf722a8 295
adambakerwa 50:9fc8edf722a8 296 //transfer ver2 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 297 Pos Levels::pass_data_ver2(Pos pos, Pos ver2)
adambakerwa 50:9fc8edf722a8 298 {
adambakerwa 50:9fc8edf722a8 299 pos.vx2 = ver2.x;
adambakerwa 50:9fc8edf722a8 300 pos.vy2 = ver2.y;
adambakerwa 50:9fc8edf722a8 301 pos.vd2 = ver2.d;
adambakerwa 50:9fc8edf722a8 302 pos.vc2 = ver2.c;
adambakerwa 50:9fc8edf722a8 303 pos.vl2 = ver2.l;
adambakerwa 50:9fc8edf722a8 304 pos.vh2 = ver2.h;
adambakerwa 50:9fc8edf722a8 305
adambakerwa 50:9fc8edf722a8 306 return pos;
adambakerwa 50:9fc8edf722a8 307 }
adambakerwa 50:9fc8edf722a8 308
adambakerwa 50:9fc8edf722a8 309
adambakerwa 50:9fc8edf722a8 310
adambakerwa 50:9fc8edf722a8 311 //increment counter1
adambakerwa 50:9fc8edf722a8 312 void Levels::speech_counter1()
adambakerwa 50:9fc8edf722a8 313 {
adambakerwa 50:9fc8edf722a8 314 _counter1++;
adambakerwa 50:9fc8edf722a8 315 }
adambakerwa 50:9fc8edf722a8 316
adambakerwa 50:9fc8edf722a8 317
adambakerwa 50:9fc8edf722a8 318 //inrement counter2
adambakerwa 50:9fc8edf722a8 319 void Levels::speech_counter2()
adambakerwa 50:9fc8edf722a8 320 {
adambakerwa 50:9fc8edf722a8 321 _counter2++;
adambakerwa 50:9fc8edf722a8 322 }
adambakerwa 50:9fc8edf722a8 323
adambakerwa 50:9fc8edf722a8 324
adambakerwa 50:9fc8edf722a8 325 //print string 'why hello there' word by word
adambakerwa 50:9fc8edf722a8 326 void Levels::speech_one(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 327 {
adambakerwa 50:9fc8edf722a8 328
adambakerwa 50:9fc8edf722a8 329 if (_counter1 > 5 && _counter1 < 15) {
adambakerwa 50:9fc8edf722a8 330 lcd.printString(" Why,",0,0);
adambakerwa 50:9fc8edf722a8 331 }
adambakerwa 50:9fc8edf722a8 332
adambakerwa 50:9fc8edf722a8 333 if (_counter1 > 8 && _counter1 < 11) {
adambakerwa 50:9fc8edf722a8 334 lcd.printString(" Hello",0,1);
adambakerwa 50:9fc8edf722a8 335 }
adambakerwa 50:9fc8edf722a8 336
adambakerwa 50:9fc8edf722a8 337 if (_counter1 > 10 && _counter1 < 16) {
adambakerwa 50:9fc8edf722a8 338 lcd.printString(" Hello there...",0,1);
adambakerwa 50:9fc8edf722a8 339 }
adambakerwa 50:9fc8edf722a8 340
adambakerwa 50:9fc8edf722a8 341 if (_counter1 > 15 && _counter1 < 17) {
adambakerwa 50:9fc8edf722a8 342 lcd.printString(" there...",0,1);
adambakerwa 50:9fc8edf722a8 343 }
adambakerwa 50:9fc8edf722a8 344 }
adambakerwa 50:9fc8edf722a8 345
adambakerwa 50:9fc8edf722a8 346
adambakerwa 50:9fc8edf722a8 347 //print string 'you must be ' word by word
adambakerwa 50:9fc8edf722a8 348 void Levels::speech_two(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 349 {
adambakerwa 50:9fc8edf722a8 350 if (_counter1 >= 20 && _counter1 < 22) {
adambakerwa 50:9fc8edf722a8 351 lcd.printString(" You ",0,0);
adambakerwa 50:9fc8edf722a8 352 }
adambakerwa 50:9fc8edf722a8 353
adambakerwa 50:9fc8edf722a8 354 if (_counter1 >= 22 && _counter1 < 23) {
adambakerwa 50:9fc8edf722a8 355 lcd.printString(" You must ",0,0);
adambakerwa 50:9fc8edf722a8 356 }
adambakerwa 50:9fc8edf722a8 357
adambakerwa 50:9fc8edf722a8 358 if (_counter1 >= 23 && _counter1 < 29) {
adambakerwa 50:9fc8edf722a8 359 lcd.printString(" You must be",0,0);
adambakerwa 50:9fc8edf722a8 360 }
adambakerwa 50:9fc8edf722a8 361
adambakerwa 50:9fc8edf722a8 362 if (_counter1 >= 29 && _counter1 < 30) {
adambakerwa 50:9fc8edf722a8 363 lcd.printString(" must be",0,0);
adambakerwa 50:9fc8edf722a8 364 }
adambakerwa 50:9fc8edf722a8 365
adambakerwa 50:9fc8edf722a8 366 if (_counter1 >= 30 && _counter1 < 31) {
adambakerwa 50:9fc8edf722a8 367 lcd.printString(" be",0,0);
adambakerwa 50:9fc8edf722a8 368 }
adambakerwa 50:9fc8edf722a8 369
adambakerwa 50:9fc8edf722a8 370 }
adambakerwa 50:9fc8edf722a8 371
adambakerwa 50:9fc8edf722a8 372
adambakerwa 50:9fc8edf722a8 373 //print string 'the new guy' word by word
adambakerwa 50:9fc8edf722a8 374 void Levels::speech_three(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 375 {
adambakerwa 50:9fc8edf722a8 376 if (_counter1 >= 24 && _counter1 < 25) {
adambakerwa 50:9fc8edf722a8 377 lcd.printString(" The ",0,1);
adambakerwa 50:9fc8edf722a8 378 }
adambakerwa 50:9fc8edf722a8 379 if (_counter1 >= 25 && _counter1 < 26) {
adambakerwa 50:9fc8edf722a8 380 lcd.printString(" The new",0,1);
adambakerwa 50:9fc8edf722a8 381 }
adambakerwa 50:9fc8edf722a8 382 if (_counter1 >= 26 && _counter1 < 32) {
adambakerwa 50:9fc8edf722a8 383 lcd.printString(" The new guy.,",0,1);
adambakerwa 50:9fc8edf722a8 384 }
adambakerwa 50:9fc8edf722a8 385 if (_counter1 >= 32 && _counter1 < 33) {
adambakerwa 50:9fc8edf722a8 386 lcd.printString(" new guy.,",0,1);
adambakerwa 50:9fc8edf722a8 387 }
adambakerwa 50:9fc8edf722a8 388 if (_counter1 >= 33 && _counter1 < 34) {
adambakerwa 50:9fc8edf722a8 389 lcd.printString(" guy.,",0,1);
adambakerwa 50:9fc8edf722a8 390 }
adambakerwa 50:9fc8edf722a8 391 }
adambakerwa 50:9fc8edf722a8 392
adambakerwa 50:9fc8edf722a8 393
adambakerwa 50:9fc8edf722a8 394 //print string 'use joy stick to move-go right' word by word
adambakerwa 50:9fc8edf722a8 395 void Levels::speech_four(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 396 {
adambakerwa 50:9fc8edf722a8 397 if (_counter1 >= 40) {
adambakerwa 50:9fc8edf722a8 398 lcd.printString(" Use jystck to",0,0);
adambakerwa 50:9fc8edf722a8 399 lcd.printString("move-GO RIGHT!",0,1);
adambakerwa 50:9fc8edf722a8 400 }
adambakerwa 50:9fc8edf722a8 401 }
adambakerwa 50:9fc8edf722a8 402
adambakerwa 50:9fc8edf722a8 403
adambakerwa 50:9fc8edf722a8 404 //print string 'shame what' word by word
adambakerwa 50:9fc8edf722a8 405 void Levels::speech_five(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 406 {
adambakerwa 50:9fc8edf722a8 407
adambakerwa 50:9fc8edf722a8 408 if (_counter2 >= 5 && _counter2 < 6) {
adambakerwa 50:9fc8edf722a8 409 lcd.printString(" Shame ",0,0);
adambakerwa 50:9fc8edf722a8 410 }
adambakerwa 50:9fc8edf722a8 411 if (_counter2 >= 6 && _counter2 < 10) {
adambakerwa 50:9fc8edf722a8 412 lcd.printString(" Shame what",0,0);
adambakerwa 50:9fc8edf722a8 413 }
adambakerwa 50:9fc8edf722a8 414 if (_counter2 >= 10 && _counter2 < 11) {
adambakerwa 50:9fc8edf722a8 415 lcd.printString(" what",0,0);
adambakerwa 50:9fc8edf722a8 416 }
adambakerwa 50:9fc8edf722a8 417 }
adambakerwa 50:9fc8edf722a8 418
adambakerwa 50:9fc8edf722a8 419
adambakerwa 50:9fc8edf722a8 420 //print string 'happened to' word by word
adambakerwa 50:9fc8edf722a8 421 void Levels::speech_six(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 422 {
adambakerwa 50:9fc8edf722a8 423
adambakerwa 50:9fc8edf722a8 424 if (_counter2 >= 7 && _counter2 < 8) {
adambakerwa 50:9fc8edf722a8 425 lcd.printString(" happened ",0,1);
adambakerwa 50:9fc8edf722a8 426 }
adambakerwa 50:9fc8edf722a8 427 if (_counter2 >= 8 && _counter2 < 12) {
adambakerwa 50:9fc8edf722a8 428 lcd.printString(" happened to ",0,1);
adambakerwa 50:9fc8edf722a8 429 }
adambakerwa 50:9fc8edf722a8 430 if (_counter2 >= 12 && _counter2 < 13) {
adambakerwa 50:9fc8edf722a8 431 lcd.printString(" to ",0,1);
adambakerwa 50:9fc8edf722a8 432 }
adambakerwa 50:9fc8edf722a8 433 }
adambakerwa 50:9fc8edf722a8 434
adambakerwa 50:9fc8edf722a8 435
adambakerwa 50:9fc8edf722a8 436 //print string 'the last lad...' word by word
adambakerwa 50:9fc8edf722a8 437 void Levels::speech_seven(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 438 {
adambakerwa 50:9fc8edf722a8 439
adambakerwa 50:9fc8edf722a8 440 if (_counter2 >= 13 && _counter2 < 14) {
adambakerwa 50:9fc8edf722a8 441 lcd.printString(" the ",0,0);
adambakerwa 50:9fc8edf722a8 442 }
adambakerwa 50:9fc8edf722a8 443 if (_counter2 >= 14 && _counter2 < 20) {
adambakerwa 50:9fc8edf722a8 444 lcd.printString(" the last",0,0);
adambakerwa 50:9fc8edf722a8 445 }
adambakerwa 50:9fc8edf722a8 446 if (_counter2 >= 20 && _counter2 < 21) {
adambakerwa 50:9fc8edf722a8 447 lcd.printString(" last",0,0);
adambakerwa 50:9fc8edf722a8 448 }
adambakerwa 50:9fc8edf722a8 449
adambakerwa 50:9fc8edf722a8 450 if (_counter2 >= 16 && _counter2 < 23) {
adambakerwa 50:9fc8edf722a8 451 lcd.printString(" lad...",0,1);
adambakerwa 50:9fc8edf722a8 452 }
adambakerwa 50:9fc8edf722a8 453 }
adambakerwa 50:9fc8edf722a8 454
adambakerwa 50:9fc8edf722a8 455
adambakerwa 50:9fc8edf722a8 456 //print string 'press button a to jump' word by word
adambakerwa 50:9fc8edf722a8 457 void Levels::speech_eight(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 458 {
adambakerwa 50:9fc8edf722a8 459 if (_counter2 >= 26) {
adambakerwa 50:9fc8edf722a8 460 lcd.printString(" Press button",0,0);
adambakerwa 50:9fc8edf722a8 461 lcd.printString(" A to jump",0,1);
adambakerwa 50:9fc8edf722a8 462 }
adambakerwa 50:9fc8edf722a8 463 }
adambakerwa 50:9fc8edf722a8 464
adambakerwa 50:9fc8edf722a8 465
adambakerwa 50:9fc8edf722a8 466 //print string 'I was just' word by word
adambakerwa 50:9fc8edf722a8 467 void Levels::speech_nine(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 468 {
adambakerwa 50:9fc8edf722a8 469
adambakerwa 50:9fc8edf722a8 470 if (_counter1 >= 5 && _counter1 < 6) {
adambakerwa 50:9fc8edf722a8 471 lcd.printString(" I ",0,0);
adambakerwa 50:9fc8edf722a8 472 }
adambakerwa 50:9fc8edf722a8 473 if (_counter1 >= 6 && _counter1 < 7) {
adambakerwa 50:9fc8edf722a8 474 lcd.printString(" I was",0,0);
adambakerwa 50:9fc8edf722a8 475 }
adambakerwa 50:9fc8edf722a8 476 if (_counter1 >= 7 && _counter1 < 10) {
adambakerwa 50:9fc8edf722a8 477 lcd.printString(" I was just",0,0);
adambakerwa 50:9fc8edf722a8 478 }
adambakerwa 50:9fc8edf722a8 479 if (_counter1 >= 10 && _counter1 < 11) {
adambakerwa 50:9fc8edf722a8 480 lcd.printString(" was just",0,0);
adambakerwa 50:9fc8edf722a8 481 }
adambakerwa 50:9fc8edf722a8 482 if (_counter1 >= 11 && _counter1 < 12) {
adambakerwa 50:9fc8edf722a8 483 lcd.printString(" just",0,0);
adambakerwa 50:9fc8edf722a8 484 }
adambakerwa 50:9fc8edf722a8 485 }
adambakerwa 50:9fc8edf722a8 486
adambakerwa 50:9fc8edf722a8 487
adambakerwa 50:9fc8edf722a8 488 //print string 'starting to' word by word
adambakerwa 50:9fc8edf722a8 489 void Levels::speech_ten(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 490 {
adambakerwa 50:9fc8edf722a8 491
adambakerwa 50:9fc8edf722a8 492 if (_counter1 >= 8 && _counter1 < 13) {
adambakerwa 50:9fc8edf722a8 493 lcd.printString("starting ",0,1);
adambakerwa 50:9fc8edf722a8 494 }
adambakerwa 50:9fc8edf722a8 495 if (_counter1 >= 9 && _counter1 < 14) {
adambakerwa 50:9fc8edf722a8 496 lcd.printString("starting to ",0,1);
adambakerwa 50:9fc8edf722a8 497 }
adambakerwa 50:9fc8edf722a8 498 if (_counter1 >= 14 && _counter1 < 15) {
adambakerwa 50:9fc8edf722a8 499 lcd.printString(" to",0,1);
adambakerwa 50:9fc8edf722a8 500 }
adambakerwa 50:9fc8edf722a8 501 }
adambakerwa 50:9fc8edf722a8 502
adambakerwa 50:9fc8edf722a8 503
adambakerwa 50:9fc8edf722a8 504 //print string 'like him' word by word
adambakerwa 50:9fc8edf722a8 505 void Levels::speech_elleven(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 506 {
adambakerwa 50:9fc8edf722a8 507
adambakerwa 50:9fc8edf722a8 508 if (_counter1 >= 14 && _counter1 < 15) {
adambakerwa 50:9fc8edf722a8 509 lcd.printString(" like ",0,0);
adambakerwa 50:9fc8edf722a8 510 }
adambakerwa 50:9fc8edf722a8 511 if (_counter1 >= 15 && _counter1 < 25) {
adambakerwa 50:9fc8edf722a8 512 lcd.printString(" like him",0,0);
adambakerwa 50:9fc8edf722a8 513 }
adambakerwa 50:9fc8edf722a8 514 if (_counter1 >= 25 && _counter1 < 26) {
adambakerwa 50:9fc8edf722a8 515 lcd.printString(" him",0,0);
adambakerwa 50:9fc8edf722a8 516 }
adambakerwa 50:9fc8edf722a8 517 }
adambakerwa 50:9fc8edf722a8 518
adambakerwa 50:9fc8edf722a8 519
adambakerwa 50:9fc8edf722a8 520 //print string 'as well!' word by word
adambakerwa 50:9fc8edf722a8 521 void Levels::speech_twelve(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 522 {
adambakerwa 50:9fc8edf722a8 523
adambakerwa 50:9fc8edf722a8 524 if (_counter1 >= 16 && _counter1 < 17) {
adambakerwa 50:9fc8edf722a8 525 lcd.printString(" as ",0,1);
adambakerwa 50:9fc8edf722a8 526 }
adambakerwa 50:9fc8edf722a8 527 if (_counter1 >= 17 && _counter1 < 27) {
adambakerwa 50:9fc8edf722a8 528 lcd.printString(" as well! ",0,1);
adambakerwa 50:9fc8edf722a8 529 }
adambakerwa 50:9fc8edf722a8 530 if (_counter1 >= 27 && _counter1 < 28) {
adambakerwa 50:9fc8edf722a8 531 lcd.printString(" well! ",0,1);
adambakerwa 50:9fc8edf722a8 532 }
adambakerwa 50:9fc8edf722a8 533 }
adambakerwa 50:9fc8edf722a8 534
adambakerwa 50:9fc8edf722a8 535
adambakerwa 50:9fc8edf722a8 536 //print string 'Here's an idea..' word by word
adambakerwa 50:9fc8edf722a8 537 void Levels::speech_thirteen(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 538 {
adambakerwa 50:9fc8edf722a8 539 if (_counter2 >= 5 && _counter2 < 12) {
adambakerwa 50:9fc8edf722a8 540 lcd.printString("Here's", 55, 3);
adambakerwa 50:9fc8edf722a8 541 }
adambakerwa 50:9fc8edf722a8 542 if (_counter2 >= 6 && _counter2 < 13) {
adambakerwa 50:9fc8edf722a8 543 lcd.printString("an", 42, 4);
adambakerwa 50:9fc8edf722a8 544 }
adambakerwa 50:9fc8edf722a8 545 if (_counter2 >= 7 && _counter2 < 14) {
adambakerwa 50:9fc8edf722a8 546 lcd.printString("idea..", 45, 5);
adambakerwa 50:9fc8edf722a8 547 }
adambakerwa 50:9fc8edf722a8 548 }
adambakerwa 50:9fc8edf722a8 549
adambakerwa 50:9fc8edf722a8 550
adambakerwa 50:9fc8edf722a8 551 //print string 'try a wall jump' word by word
adambakerwa 50:9fc8edf722a8 552 void Levels::speech_forteen(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 553 {
adambakerwa 50:9fc8edf722a8 554 if (_counter2 >= 13 && _counter2 < 22) {
adambakerwa 50:9fc8edf722a8 555 lcd.printString("try", 60, 3);
adambakerwa 50:9fc8edf722a8 556 }
adambakerwa 50:9fc8edf722a8 557 if (_counter2 >= 14 && _counter2 < 23) {
adambakerwa 50:9fc8edf722a8 558 lcd.printString("a", 45, 4);
adambakerwa 50:9fc8edf722a8 559 }
adambakerwa 50:9fc8edf722a8 560 if (_counter2 >= 14 && _counter2 < 23) {
adambakerwa 50:9fc8edf722a8 561 lcd.printString("a wall", 45, 4);
adambakerwa 50:9fc8edf722a8 562 }
adambakerwa 50:9fc8edf722a8 563 if (_counter2 >= 14 && _counter2 < 23) {
adambakerwa 50:9fc8edf722a8 564 lcd.printString("a wall", 45, 4);
adambakerwa 50:9fc8edf722a8 565 }
adambakerwa 50:9fc8edf722a8 566 if (_counter2 >= 16 && _counter2 < 25) {
adambakerwa 50:9fc8edf722a8 567 lcd.printString("jump!", 50, 5);
adambakerwa 50:9fc8edf722a8 568 }
adambakerwa 50:9fc8edf722a8 569 }
adambakerwa 50:9fc8edf722a8 570
adambakerwa 50:9fc8edf722a8 571
adambakerwa 50:9fc8edf722a8 572 //run level one
adambakerwa 50:9fc8edf722a8 573 Pos Levels::level_one(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 574 {
adambakerwa 50:9fc8edf722a8 575
adambakerwa 50:9fc8edf722a8 576 lcd.drawLine(0,40,84,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 577
adambakerwa 50:9fc8edf722a8 578 speech_level_one(lcd); //display speech for level
adambakerwa 50:9fc8edf722a8 579
adambakerwa 50:9fc8edf722a8 580 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 581
adambakerwa 50:9fc8edf722a8 582 return _pos; //return postions of moving platforms if any.
adambakerwa 50:9fc8edf722a8 583
adambakerwa 50:9fc8edf722a8 584 }
adambakerwa 50:9fc8edf722a8 585
adambakerwa 50:9fc8edf722a8 586
adambakerwa 50:9fc8edf722a8 587 //run level one speech
adambakerwa 50:9fc8edf722a8 588 void Levels::speech_level_one(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 589 {
adambakerwa 50:9fc8edf722a8 590 speech_counter1(); //counter increments
adambakerwa 50:9fc8edf722a8 591 speech_one(lcd); //speech appears according to counter
adambakerwa 50:9fc8edf722a8 592 speech_two(lcd);
adambakerwa 50:9fc8edf722a8 593 speech_three(lcd);
adambakerwa 50:9fc8edf722a8 594 speech_four(lcd);
adambakerwa 50:9fc8edf722a8 595 }
adambakerwa 50:9fc8edf722a8 596
adambakerwa 50:9fc8edf722a8 597 Pos Levels::init_level_one(Pos pos)
adambakerwa 50:9fc8edf722a8 598 {
adambakerwa 50:9fc8edf722a8 599 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 600 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 601 _pos = init_ver1(_pos);
adambakerwa 50:9fc8edf722a8 602 _pos = init_ver2(_pos);
adambakerwa 50:9fc8edf722a8 603 _pos = init_spike(_pos);
adambakerwa 50:9fc8edf722a8 604 init_counter2();
adambakerwa 50:9fc8edf722a8 605
adambakerwa 50:9fc8edf722a8 606 return _pos;
adambakerwa 50:9fc8edf722a8 607 }
adambakerwa 50:9fc8edf722a8 608
adambakerwa 50:9fc8edf722a8 609 //run level two
adambakerwa 50:9fc8edf722a8 610 Pos Levels::level_two(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 611 {
adambakerwa 50:9fc8edf722a8 612
adambakerwa 50:9fc8edf722a8 613
adambakerwa 50:9fc8edf722a8 614 lcd.drawLine(0,40,35,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 615 lcd.drawLine(35,40,35,48,1);
adambakerwa 50:9fc8edf722a8 616 lcd.drawLine(50,40,84,40,1);
adambakerwa 50:9fc8edf722a8 617 lcd.drawLine(50,40,50,48,1);
adambakerwa 50:9fc8edf722a8 618
adambakerwa 50:9fc8edf722a8 619 speech_level_two(lcd); //display speech for level
adambakerwa 50:9fc8edf722a8 620
adambakerwa 50:9fc8edf722a8 621 _pos = init_level_two(_pos);
adambakerwa 50:9fc8edf722a8 622
adambakerwa 50:9fc8edf722a8 623 return _pos; //return postions of moving platforms if any.
adambakerwa 50:9fc8edf722a8 624 }
adambakerwa 50:9fc8edf722a8 625
adambakerwa 50:9fc8edf722a8 626
adambakerwa 50:9fc8edf722a8 627 //intialises all platform variables not being used in level 2
adambakerwa 50:9fc8edf722a8 628 Pos Levels::init_level_two(Pos pos)
adambakerwa 50:9fc8edf722a8 629 {
adambakerwa 50:9fc8edf722a8 630 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 631 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 632 _pos = init_ver1(_pos);
adambakerwa 50:9fc8edf722a8 633 _pos = init_ver2(_pos);
adambakerwa 50:9fc8edf722a8 634 _pos = init_spike(_pos);
adambakerwa 50:9fc8edf722a8 635 init_counter1();
adambakerwa 50:9fc8edf722a8 636
adambakerwa 50:9fc8edf722a8 637 return _pos;
adambakerwa 50:9fc8edf722a8 638 }
adambakerwa 50:9fc8edf722a8 639
adambakerwa 50:9fc8edf722a8 640
adambakerwa 50:9fc8edf722a8 641 //run level two speech
adambakerwa 50:9fc8edf722a8 642 void Levels::speech_level_two(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 643 {
adambakerwa 50:9fc8edf722a8 644 speech_counter2(); //counter increments
adambakerwa 50:9fc8edf722a8 645 speech_five(lcd); //speech appears according to counter
adambakerwa 50:9fc8edf722a8 646 speech_six(lcd);
adambakerwa 50:9fc8edf722a8 647 speech_seven(lcd);
adambakerwa 50:9fc8edf722a8 648 speech_eight(lcd);
adambakerwa 50:9fc8edf722a8 649 }
adambakerwa 50:9fc8edf722a8 650
adambakerwa 50:9fc8edf722a8 651
adambakerwa 50:9fc8edf722a8 652 //run level three
adambakerwa 50:9fc8edf722a8 653 Pos Levels::level_three(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 654 {
adambakerwa 50:9fc8edf722a8 655 lcd.drawLine(0,40,15,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 656 lcd.drawLine(15,40,15,48,1);
adambakerwa 50:9fc8edf722a8 657 lcd.drawLine(70,40,84,40,1);
adambakerwa 50:9fc8edf722a8 658 lcd.drawLine(70,40,70,48,1);
adambakerwa 50:9fc8edf722a8 659
adambakerwa 50:9fc8edf722a8 660 lcd.drawLine(74,14,74,0,1);
adambakerwa 50:9fc8edf722a8 661 lcd.drawLine(74,14,84,14,1);
adambakerwa 50:9fc8edf722a8 662
adambakerwa 50:9fc8edf722a8 663 _hoz1 = moving_platform_hoz(lcd, _hoz1, 25, 40, 10, 3, 25, 1); //set parameters for horizontal moving platform
adambakerwa 50:9fc8edf722a8 664 _pos = pass_data_hoz1(_pos, _hoz1);
adambakerwa 50:9fc8edf722a8 665
adambakerwa 50:9fc8edf722a8 666 speech_level_three(lcd); //display speech for level
adambakerwa 50:9fc8edf722a8 667
adambakerwa 50:9fc8edf722a8 668 _pos = init_level_three(_pos);
adambakerwa 50:9fc8edf722a8 669
adambakerwa 50:9fc8edf722a8 670 return _pos;
adambakerwa 50:9fc8edf722a8 671 }
adambakerwa 50:9fc8edf722a8 672
adambakerwa 50:9fc8edf722a8 673
adambakerwa 50:9fc8edf722a8 674 //intialises all platform variables not being used in level 3
adambakerwa 50:9fc8edf722a8 675 Pos Levels::init_level_three(Pos pos)
adambakerwa 50:9fc8edf722a8 676 {
adambakerwa 50:9fc8edf722a8 677 //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 678 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 679 _pos = init_ver1(_pos);
adambakerwa 50:9fc8edf722a8 680 _pos = init_ver2(_pos);
adambakerwa 50:9fc8edf722a8 681 _pos = init_spike(_pos);
adambakerwa 50:9fc8edf722a8 682 init_counter2();
adambakerwa 50:9fc8edf722a8 683
adambakerwa 50:9fc8edf722a8 684 return _pos;
adambakerwa 50:9fc8edf722a8 685 }
adambakerwa 50:9fc8edf722a8 686
adambakerwa 50:9fc8edf722a8 687
adambakerwa 50:9fc8edf722a8 688 //run level three speech
adambakerwa 50:9fc8edf722a8 689 void Levels::speech_level_three(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 690 {
adambakerwa 50:9fc8edf722a8 691 speech_counter1(); //counter increments
adambakerwa 50:9fc8edf722a8 692 speech_nine(lcd); //speech appears according to counter
adambakerwa 50:9fc8edf722a8 693 speech_ten(lcd);
adambakerwa 50:9fc8edf722a8 694 speech_elleven(lcd);
adambakerwa 50:9fc8edf722a8 695 speech_twelve(lcd);
adambakerwa 50:9fc8edf722a8 696 }
adambakerwa 50:9fc8edf722a8 697
adambakerwa 50:9fc8edf722a8 698
adambakerwa 50:9fc8edf722a8 699 //run level four
adambakerwa 50:9fc8edf722a8 700 Pos Levels::level_four(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 701 {
adambakerwa 50:9fc8edf722a8 702
adambakerwa 50:9fc8edf722a8 703 lcd.drawLine(0,40,84,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 704 lcd.drawLine(0,14,10,14,1);
adambakerwa 50:9fc8edf722a8 705 lcd.drawLine(10,0,10,14,1);
adambakerwa 50:9fc8edf722a8 706
adambakerwa 50:9fc8edf722a8 707 lcd.drawLine(74,14,74,0,1);
adambakerwa 50:9fc8edf722a8 708 lcd.drawLine(74,14,84,14,1);
adambakerwa 50:9fc8edf722a8 709
adambakerwa 50:9fc8edf722a8 710 _ver1 = moving_platform_ver(lcd, _ver1, 11, 0, 18, 30, 21, 10); //set parameters for vertical moving platform
adambakerwa 50:9fc8edf722a8 711 _pos = pass_data_ver1(_pos, _ver1);
adambakerwa 50:9fc8edf722a8 712 _ver2 = moving_platform_ver(lcd, _ver2, 42, 0, 18, 31, 21, 1); //set parameters for vertical 2 moving platform
adambakerwa 50:9fc8edf722a8 713 _pos = pass_data_ver2(_pos, _ver2);
adambakerwa 50:9fc8edf722a8 714
adambakerwa 50:9fc8edf722a8 715 _pos = init_level_four(_pos);
adambakerwa 50:9fc8edf722a8 716
adambakerwa 50:9fc8edf722a8 717 return _pos;
adambakerwa 50:9fc8edf722a8 718
adambakerwa 50:9fc8edf722a8 719
adambakerwa 50:9fc8edf722a8 720 }
adambakerwa 50:9fc8edf722a8 721
adambakerwa 50:9fc8edf722a8 722
adambakerwa 50:9fc8edf722a8 723 //intialises all platform variables not being used in level 4
adambakerwa 50:9fc8edf722a8 724 Pos Levels::init_level_four(Pos pos)
adambakerwa 50:9fc8edf722a8 725 {
adambakerwa 50:9fc8edf722a8 726 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 727 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 728 _pos = init_spike(_pos);
adambakerwa 50:9fc8edf722a8 729 init_counter2();
adambakerwa 50:9fc8edf722a8 730 init_counter1();
adambakerwa 50:9fc8edf722a8 731
adambakerwa 50:9fc8edf722a8 732 return _pos;
adambakerwa 50:9fc8edf722a8 733 }
adambakerwa 50:9fc8edf722a8 734
adambakerwa 50:9fc8edf722a8 735
adambakerwa 50:9fc8edf722a8 736 //run level five
adambakerwa 50:9fc8edf722a8 737 Pos Levels::level_five(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 738 {
adambakerwa 50:9fc8edf722a8 739
adambakerwa 50:9fc8edf722a8 740 lcd.drawLine(0,40,40,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 741 lcd.drawLine(40,40,40,20,1);
adambakerwa 50:9fc8edf722a8 742 lcd.drawLine(40,20,84,20,1);
adambakerwa 50:9fc8edf722a8 743
adambakerwa 50:9fc8edf722a8 744 lcd.drawLine(0,14,10,14,1);
adambakerwa 50:9fc8edf722a8 745 lcd.drawLine(10,14,10,25,1);
adambakerwa 50:9fc8edf722a8 746 lcd.drawLine(10,25,20,25,1);
adambakerwa 50:9fc8edf722a8 747 lcd.drawLine(20,0,20,25,1);
adambakerwa 50:9fc8edf722a8 748
adambakerwa 50:9fc8edf722a8 749 speech_counter2(); //run speech for level
adambakerwa 50:9fc8edf722a8 750 speech_thirteen(lcd);
adambakerwa 50:9fc8edf722a8 751 speech_forteen(lcd);
adambakerwa 50:9fc8edf722a8 752
adambakerwa 50:9fc8edf722a8 753 _pos = spike_row_up(lcd, _pos, 55, 19, 5); //set parameters for spikes
adambakerwa 50:9fc8edf722a8 754
adambakerwa 50:9fc8edf722a8 755 _pos = init_level_five(_pos);
adambakerwa 50:9fc8edf722a8 756
adambakerwa 50:9fc8edf722a8 757 return _pos;
adambakerwa 50:9fc8edf722a8 758
adambakerwa 50:9fc8edf722a8 759 }
adambakerwa 50:9fc8edf722a8 760
adambakerwa 50:9fc8edf722a8 761
adambakerwa 50:9fc8edf722a8 762
adambakerwa 50:9fc8edf722a8 763 //intialises all platform variables not being used in level 4
adambakerwa 50:9fc8edf722a8 764 Pos Levels::init_level_five(Pos pos)
adambakerwa 50:9fc8edf722a8 765 {
adambakerwa 50:9fc8edf722a8 766 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 767 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 768 _pos = init_ver1(_pos);
adambakerwa 50:9fc8edf722a8 769 _pos = init_ver2(_pos);
adambakerwa 50:9fc8edf722a8 770 init_counter1();
adambakerwa 50:9fc8edf722a8 771
adambakerwa 50:9fc8edf722a8 772 return _pos;
adambakerwa 50:9fc8edf722a8 773 }
adambakerwa 50:9fc8edf722a8 774
adambakerwa 50:9fc8edf722a8 775
adambakerwa 50:9fc8edf722a8 776 //run level six
adambakerwa 50:9fc8edf722a8 777 Pos Levels::level_six(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 778 {
adambakerwa 50:9fc8edf722a8 779
adambakerwa 50:9fc8edf722a8 780 lcd.drawLine(0,20,10,20,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 781 lcd.drawLine(10,20,10,48,1);
adambakerwa 50:9fc8edf722a8 782 lcd.drawLine(74,48,74,20,1);
adambakerwa 50:9fc8edf722a8 783 lcd.drawLine(74,20,84,20,1);
adambakerwa 50:9fc8edf722a8 784
adambakerwa 50:9fc8edf722a8 785 _ver1 = moving_platform_ver(lcd, _ver1, 23, 10, 3, 5, 20, 1); //set parameters for vertical moving platform
adambakerwa 50:9fc8edf722a8 786 _pos = pass_data_ver1(_pos, _ver1);
adambakerwa 50:9fc8edf722a8 787
adambakerwa 50:9fc8edf722a8 788 _ver2 = moving_platform_ver(lcd, _ver2, 56, 10, 3, 5, 20, 19); //set parameters for vertical 2 moving platform
adambakerwa 50:9fc8edf722a8 789 _pos = pass_data_ver2(_pos, _ver2);
adambakerwa 50:9fc8edf722a8 790
adambakerwa 50:9fc8edf722a8 791 _pos = init_level_six(_pos);
adambakerwa 50:9fc8edf722a8 792
adambakerwa 50:9fc8edf722a8 793 return _pos;
adambakerwa 50:9fc8edf722a8 794 }
adambakerwa 50:9fc8edf722a8 795
adambakerwa 50:9fc8edf722a8 796
adambakerwa 50:9fc8edf722a8 797
adambakerwa 50:9fc8edf722a8 798
adambakerwa 50:9fc8edf722a8 799 //intialises all platform variables not being used in level 6
adambakerwa 50:9fc8edf722a8 800 Pos Levels::init_level_six(Pos pos)
adambakerwa 50:9fc8edf722a8 801 {
adambakerwa 50:9fc8edf722a8 802 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 803 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 804 init_counter2();
adambakerwa 50:9fc8edf722a8 805 init_counter1();
adambakerwa 50:9fc8edf722a8 806 _pos = init_spike(_pos);
adambakerwa 50:9fc8edf722a8 807
adambakerwa 50:9fc8edf722a8 808 return _pos;
adambakerwa 50:9fc8edf722a8 809 }
adambakerwa 50:9fc8edf722a8 810
adambakerwa 50:9fc8edf722a8 811
adambakerwa 50:9fc8edf722a8 812 //run level seven
adambakerwa 50:9fc8edf722a8 813 Pos Levels::level_seven(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 814 {
adambakerwa 50:9fc8edf722a8 815 lcd.drawLine(0,20,10,20,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 816 lcd.drawLine(10,20,10,48,1);
adambakerwa 50:9fc8edf722a8 817
adambakerwa 50:9fc8edf722a8 818 lcd.drawLine(50,39,56,39,1);
adambakerwa 50:9fc8edf722a8 819 lcd.drawLine(50,39,50,37,1);
adambakerwa 50:9fc8edf722a8 820 lcd.drawLine(56,37,56,39,1);
adambakerwa 50:9fc8edf722a8 821
adambakerwa 50:9fc8edf722a8 822 lcd.drawLine(70,40,84,40,1);
adambakerwa 50:9fc8edf722a8 823 lcd.drawLine(70,40,70,48,1);
adambakerwa 50:9fc8edf722a8 824
adambakerwa 50:9fc8edf722a8 825 _hoz1 = moving_platform_hoz(lcd, _hoz1, 20, 40, 20, 3, 25, 1); //set parameters for horizontal moving platform
adambakerwa 50:9fc8edf722a8 826 _pos = pass_data_hoz1(_pos, _hoz1);
adambakerwa 50:9fc8edf722a8 827
adambakerwa 50:9fc8edf722a8 828 _pos = spike_row_up(lcd, _pos, 50, 37, 3); //set parameters for spikes
adambakerwa 50:9fc8edf722a8 829
adambakerwa 50:9fc8edf722a8 830 _pos = init_level_seven(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 831
adambakerwa 50:9fc8edf722a8 832
adambakerwa 50:9fc8edf722a8 833 return _pos;
adambakerwa 50:9fc8edf722a8 834 }
adambakerwa 50:9fc8edf722a8 835
adambakerwa 50:9fc8edf722a8 836
adambakerwa 50:9fc8edf722a8 837 //intialises all platform variables not being used in level 7
adambakerwa 50:9fc8edf722a8 838 Pos Levels::init_level_seven(Pos pos)
adambakerwa 50:9fc8edf722a8 839 {
adambakerwa 50:9fc8edf722a8 840 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 841 _pos = init_ver1(_pos);
adambakerwa 50:9fc8edf722a8 842 _pos = init_ver2(_pos);
adambakerwa 50:9fc8edf722a8 843 init_counter2();
adambakerwa 50:9fc8edf722a8 844
adambakerwa 50:9fc8edf722a8 845 return _pos;
adambakerwa 50:9fc8edf722a8 846 }
adambakerwa 50:9fc8edf722a8 847
adambakerwa 50:9fc8edf722a8 848
adambakerwa 50:9fc8edf722a8 849 //run level eight
adambakerwa 50:9fc8edf722a8 850 Pos Levels::level_eight(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 851 {
adambakerwa 50:9fc8edf722a8 852
adambakerwa 50:9fc8edf722a8 853 lcd.drawLine(0,40,10,40,1); //draw lines for level
adambakerwa 50:9fc8edf722a8 854 lcd.drawLine(10,40,10,48,1);
adambakerwa 50:9fc8edf722a8 855
adambakerwa 50:9fc8edf722a8 856 lcd.drawLine(22,48,22,32,1);
adambakerwa 50:9fc8edf722a8 857 lcd.drawLine(62,48,62,32,1);
adambakerwa 50:9fc8edf722a8 858 lcd.drawLine(22,32,62,32,1);
adambakerwa 50:9fc8edf722a8 859
adambakerwa 50:9fc8edf722a8 860 lcd.drawLine(74,10,84,10,1);
adambakerwa 50:9fc8edf722a8 861 lcd.drawLine(74,10,74,48,1);
adambakerwa 50:9fc8edf722a8 862
adambakerwa 50:9fc8edf722a8 863
adambakerwa 50:9fc8edf722a8 864 _ver1 = moving_platform_ver(lcd, _ver1, 11, 10, 40, 10, 25, 1); //set parameters for vertical moving platform
adambakerwa 50:9fc8edf722a8 865 _pos = pass_data_ver1(_pos, _ver1);
adambakerwa 50:9fc8edf722a8 866 _ver2 = moving_platform_ver(lcd, _ver2, 63, 15, 40, 10, 25, 24); //set parameters for vertical moving platform 2
adambakerwa 50:9fc8edf722a8 867 _pos = pass_data_ver2(_pos, _ver2);
adambakerwa 50:9fc8edf722a8 868
adambakerwa 50:9fc8edf722a8 869 _pos = spike_row_up(lcd, _pos, 24, 31, 18); //set parameters for spikes
adambakerwa 50:9fc8edf722a8 870
adambakerwa 50:9fc8edf722a8 871 _pos = init_level_eight(_pos);
adambakerwa 50:9fc8edf722a8 872
adambakerwa 50:9fc8edf722a8 873 return _pos;
adambakerwa 50:9fc8edf722a8 874 }
adambakerwa 50:9fc8edf722a8 875
adambakerwa 50:9fc8edf722a8 876
adambakerwa 50:9fc8edf722a8 877 //intialises all platform variables not being used in level 8
adambakerwa 50:9fc8edf722a8 878 Pos Levels::init_level_eight(Pos pos)
adambakerwa 50:9fc8edf722a8 879 {
adambakerwa 50:9fc8edf722a8 880 _pos = init_hoz1(_pos); //intialise all variables not being used in level
adambakerwa 50:9fc8edf722a8 881 _pos = init_hoz2(_pos);
adambakerwa 50:9fc8edf722a8 882 init_counter2();
adambakerwa 50:9fc8edf722a8 883
adambakerwa 50:9fc8edf722a8 884 return _pos;
adambakerwa 50:9fc8edf722a8 885 }
adambakerwa 50:9fc8edf722a8 886
adambakerwa 50:9fc8edf722a8 887
adambakerwa 50:9fc8edf722a8 888 //run level nine
adambakerwa 50:9fc8edf722a8 889 Pos Levels::level_nine(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 890 {
adambakerwa 50:9fc8edf722a8 891
adambakerwa 50:9fc8edf722a8 892 lcd.drawLine(0,10,25,10,1);
adambakerwa 50:9fc8edf722a8 893 lcd.drawLine(25,12,25,10,1);
adambakerwa 50:9fc8edf722a8 894 lcd.drawLine(25,12,5,12,1);
adambakerwa 50:9fc8edf722a8 895 lcd.drawLine(5,12,5,48,1);
adambakerwa 50:9fc8edf722a8 896
adambakerwa 50:9fc8edf722a8 897 lcd.drawLine(45,0,45,25,1);
adambakerwa 50:9fc8edf722a8 898 lcd.drawLine(45,25,20,25,1);
adambakerwa 50:9fc8edf722a8 899 lcd.drawLine(20,25,20,28,1);
adambakerwa 50:9fc8edf722a8 900 lcd.drawLine(20,28,55,28,1);
adambakerwa 50:9fc8edf722a8 901 lcd.drawLine(55,28,65,0,1);
adambakerwa 50:9fc8edf722a8 902
adambakerwa 50:9fc8edf722a8 903
adambakerwa 50:9fc8edf722a8 904 lcd.drawLine(30,46,70,46,1);
adambakerwa 50:9fc8edf722a8 905 lcd.drawLine(70,46,70,40,1);
adambakerwa 50:9fc8edf722a8 906 lcd.drawLine(70,40,84,40,1);
adambakerwa 50:9fc8edf722a8 907 lcd.drawLine(30,46,30,48,1);
adambakerwa 50:9fc8edf722a8 908
adambakerwa 50:9fc8edf722a8 909 _pos = init(_pos);
adambakerwa 50:9fc8edf722a8 910
adambakerwa 50:9fc8edf722a8 911 return _pos;
adambakerwa 50:9fc8edf722a8 912 }
adambakerwa 50:9fc8edf722a8 913
adambakerwa 50:9fc8edf722a8 914
adambakerwa 50:9fc8edf722a8 915
adambakerwa 50:9fc8edf722a8 916 //run level ten
adambakerwa 50:9fc8edf722a8 917 Pos Levels::level_ten(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 918 {
adambakerwa 50:9fc8edf722a8 919
adambakerwa 50:9fc8edf722a8 920 _pos = init(_pos);
adambakerwa 50:9fc8edf722a8 921
adambakerwa 50:9fc8edf722a8 922 lcd.drawLine(0,40,70,40,1);
adambakerwa 50:9fc8edf722a8 923 lcd.drawLine(70,40,70,0,1);
adambakerwa 50:9fc8edf722a8 924
adambakerwa 50:9fc8edf722a8 925 lcd.printString(" ..the end,", 0, 0);
adambakerwa 50:9fc8edf722a8 926 lcd.printString("now what??", 0, 1);
adambakerwa 50:9fc8edf722a8 927 return _pos;
adambakerwa 50:9fc8edf722a8 928 }
adambakerwa 50:9fc8edf722a8 929
adambakerwa 50:9fc8edf722a8 930
adambakerwa 50:9fc8edf722a8 931 //run level zero
adambakerwa 50:9fc8edf722a8 932 Pos Levels::level_zero(N5110 &lcd)
adambakerwa 50:9fc8edf722a8 933 {
adambakerwa 50:9fc8edf722a8 934 lcd.printString(" I said the ", 0, 0);
adambakerwa 50:9fc8edf722a8 935 lcd.printString(" other Way.. ", 0, 1);
adambakerwa 50:9fc8edf722a8 936 lcd.drawLine(84,40,10,40,1);
adambakerwa 50:9fc8edf722a8 937 lcd.drawLine(10,40,10,0,1);
adambakerwa 50:9fc8edf722a8 938
adambakerwa 50:9fc8edf722a8 939
adambakerwa 50:9fc8edf722a8 940 return _pos;
adambakerwa 50:9fc8edf722a8 941 }