final boolean DEBUG = false; Car A, B, C, D, E, F, G, H, I, J, K; RedCar X; Truck O, P, Q, R; void setup() { size(300,300); background(255); frameRate(30); smooth(); gridWidth = width/(float)gameGrid.filled.length; gridHeight = height/(float)gameGrid.filled[0].length; // Level 01 X = new RedCar(1); A = new Car(LIGHTGREEN, 0, 0, carRIGHT); B = new Car(ORANGE, 0, 5, carUP); C = new Car(LIGHTBLUE, 5, 4, carLEFT); O = new Truck(DARKYELLOW, 5, 2, carUP); P = new Truck(LIGHTPURPLE, 0, 1, carDOWN); Q = new Truck(DARKBLUE, 3, 1, carDOWN); R = new Truck(TURQUISE, 2, 5, carRIGHT); // Level 02 /* X = new RedCar(0); A = new Car(LIGHTGREEN, 0, 1, carUP); B = new Car(ORANGE, 3, 1, carDOWN); C = new Car(LIGHTBLUE, 4, 3, carUP); D = new Car(PINK, 2, 4, carDOWN); E = new Car(DARKPURPLE, 5, 4, carLEFT); F = new Car(DARKGREEN, 0, 5, carRIGHT); G = new Car(BLACK, 4, 5, carLEFT); O = new Truck(DARKYELLOW, 5, 0, carLEFT); P = new Truck(LIGHTPURPLE, 5, 3, carUP); Q = new Truck(DARKBLUE, 2, 3, carLEFT); */ // Default Cars /* X = new RedCar(1); A = new Car(LIGHTGREEN, 0, 0, carRIGHT); B = new Car(ORANGE, 0, 5, carUP); C = new Car(LIGHTBLUE, 5, 4, carLEFT); D = new Car(PINK, 5, 4, carLEFT); E = new Car(DARKPURPLE, 5, 4, carLEFT); F = new Car(DARKGREEN, 5, 4, carLEFT); G = new Car(BLACK, 5, 4, carLEFT); H = new Car(LIGHTBROWN, 5, 4, carLEFT); I = new Car(LIGHTYELLOW, 5, 4, carLEFT); J = new Car(DARKBROWN, 5, 4, carLEFT); K = new Car(UGLYGREEN, 5, 4, carLEFT); O = new Truck(DARKYELLOW, 5, 2, carUP); P = new Truck(LIGHTPURPLE, 0, 1, carDOWN); Q = new Truck(DARKBLUE, 3, 1, carDOWN); R = new Truck(TURQUISE, 2, 5, carRIGHT); */ gameGrid.addVehicle(X); gameGrid.addVehicle(A); gameGrid.addVehicle(B); gameGrid.addVehicle(C); /* gameGrid.addVehicle(D); gameGrid.addVehicle(E); gameGrid.addVehicle(F); gameGrid.addVehicle(G); */ gameGrid.addVehicle(O); gameGrid.addVehicle(P); gameGrid.addVehicle(Q); gameGrid.addVehicle(R); /* gameGrid.addVehicle(new Truck(DARKYELLOW,0,0,carRIGHT)); gameGrid.addVehicle(new Truck(LIGHTPURPLE,0,5,carUP)); gameGrid.addVehicle(new Truck(DARKBLUE,5,0,carDOWN)); gameGrid.addVehicle(new Truck(TURQUISE,5,5,carLEFT)); gameGrid.addVehicle(new Car(LIGHTYELLOW, 1, 0, carRIGHT)); gameGrid.addVehicle(new Car(ORANGE, 1, 1, carRIGHT)); gameGrid.addVehicle(new Car(RED, 1, 2, carRIGHT)); gameGrid.addVehicle(new Car(PINK, 1, 3, carRIGHT)); gameGrid.addVehicle(new Car(DARKBROWN, 1, 4, carRIGHT)); gameGrid.addVehicle(new Car(DARKPURPLE, 1, 5, carRIGHT)); gameGrid.addVehicle(new Car(LIGHTBLUE, 4, 0, carLEFT)); gameGrid.addVehicle(new Car(BLACK, 4, 1, carLEFT)); gameGrid.addVehicle(new Car(LIGHTBROWN, 4, 2, carLEFT)); gameGrid.addVehicle(new Car(LIGHTGREEN, 4, 3, carLEFT)); gameGrid.addVehicle(new Car(DARKGREEN, 4, 4, carLEFT)); gameGrid.addVehicle(new Car(UGLYGREEN, 4, 5, carLEFT)); */ print(gameGrid); gameGrid.drawGrid(); //println("Red path clear? " + X.isPathClear(gameGrid)); } void draw() { background(255); /* println("frame " + frameCount); println("Red path clear? " + X.isPathClear(gameGrid)); if(!(X.isPathClear(gameGrid))) { switch(frameCount) { case(1): C.move(carLEFT,5,gameGrid); print(gameGrid); break; case(2): O.move(carDOWN,5,gameGrid); break; case(3): A.move(carRIGHT,5,gameGrid); break; case(4): P.move(carUP,5,gameGrid); break; case(5): B.move(carUP,5,gameGrid); break; case(6): R.move(carLEFT,5,gameGrid); break; case(7): Q.move(carDOWN,5,gameGrid); break; } print(gameGrid); } if (frameCount == 8) X.move(carRIGHT,5,gameGrid); */ if(!(X.isPathClear(gameGrid))) { gameGrid.drawGrid(); if(mousePressed) { int newMx = (int) mouseX/(int)gridWidth; int newMy = (int) mouseY/(int)gridHeight; if (DEBUG) { println("mouse pressed"); println("spacesx " + (newMx - oldMx)); println("spacesy " + (newMy - oldMy)); if(selectedCar != null) println(selectedCar); } // MINOR BUG HERE NEED A moveTo Method for vehicle if (selectedCar != null) { if ((newMx - oldMx) < 0) { selectedCar.move(carLEFT, abs(newMx - oldMx), gameGrid); } else { selectedCar.move(carRIGHT, abs(newMx - oldMx), gameGrid); } if ((newMy - oldMy) < 0) { selectedCar.move(carUP, abs(newMy - oldMy), gameGrid); } else { selectedCar.move(carDOWN, abs(newMy - oldMy), gameGrid); } oldMx = newMx; oldMy = newMy; if (oldMx > gameGrid.cols-1) oldMx = gameGrid.cols; if (oldMx < 0) oldMx = 0; if (oldMx > gameGrid.rows-1) oldMy = gameGrid.rows; if (oldMx < 0) oldMy = 0; } if(DEBUG) { ellipseMode(CORNER); stroke(255,0,0); ellipse((newMx * gridWidth), (newMy * gridHeight), gridWidth, gridHeight); } } } else { for (int i = 0; i < gameGrid.myCars.size(); i++) { Vehicle tmpCar = (Vehicle) gameGrid.myCars.get(i); tmpCar.myColor = color(125); } X.myColor = RED; gameGrid.drawGrid(); println("YOU WON!"); noLoop(); } }