/* Obstacle Course by Travis Pynn Red walls are on the ground Green walls are in the air Yellow walls are tall, so they are both You can avoid red walls by flying over them (holding mouse button) You can avoid green walls by going under them (releasing mouse button) You can only avoid yellow walls by going around them You will slowly gain speed as your score increases Try to get a high score! */ //initialize variables float borderW, borderH; float playerX, playerY, playerW, playerH; float wallX1, wallY1, wallW1, wallH1, wallS1; float wallX2, wallY2, wallW2, wallH2, wallS2; float wallX3, wallY3, wallW3, wallH3, wallS3; int score; int playerColor; int red, green, yellow; //set size and variables void setup() { //size and framerate size(400, 400); frameRate(60); smooth(); //set the colors red = color(240, 0, 0); green = color(0, 240, 0); yellow = color(240, 240, 0); //dimensions for borders borderW = 50; borderH = height; //dimensions for the player playerX = mouseX; playerY = 350; playerW = 50; playerH = 50; //dimensions and speed for walls wallX1 = random(50, 350); wallY1 = wallH1/2; wallW1 = random(100, 200); wallH1 = 50; wallS1 = 3; wallX2 = random(50, 350); wallY2 = wallH2/2; wallW2 = random(100, 200); wallH2 = 50; wallS2 = 4; wallX3 = random(50, 350); wallY3 = wallH2/2; wallW3 = random(100, 200); wallH3 = 50; wallS3 = 2; //initial score score = 0; } void draw() { //Draw the repeating grass background for (int i = 25; i < 450; i += 50) { fill(30, 100, 0); strokeWeight(3); rect(i, 200, 50, 400); } //Keeps the player following the mouse playerX = mouseX; //Everything else wall1(); wall3(); player(); wall2(); } void player() { //sets up player look rectMode(CENTER); fill(playerColor); strokeWeight(2); //draw player rect(playerX, playerY, playerW, playerH); //Controls "verticality" of the player if (mousePressed == true) playerColor = green; else playerColor = red; //collisions with walls if (playerY - playerH/2 < wallY1 + wallH1/2 && (playerY + playerH/2 > wallY1 + wallH1/2) && playerX < wallX1 + wallW1/2 && playerX > wallX1 - wallW1/2 && playerColor == red) { //println("hit red!"); score = 0; wallS1 = 3; wallS2 = 4; wallS3 = 2; } if ((playerY - playerH/2 < wallY2 + wallH2/2) && (playerY + playerH/2 > wallY2 + wallH2/2) && (playerX < wallX2 + wallW2/2) && (playerX > wallX2 - wallW2/2) && (playerColor == green)) { //println("hit green!"); score = 0; wallS1 = 3; wallS2 = 4; wallS3 = 2; } if (playerY - playerH/2 < wallY3 + wallH3/2 && (playerY + playerH/2 > wallY3 + wallH3/2) && mouseX < wallX3 + wallW3/2 && mouseX > wallX3 - wallW3/2) { //println("hit yellow!"); score = 0; wallS1 = 3; wallS2 = 4; wallS3 = 2; } } void wall1() { //The code for the red walls fill(red); rect(wallX1, wallY1, wallW1, wallH1); wallY1 += wallS1; if (wallY1 > height + 50) { wallY1 = -50; wallX1 = random(50, 350); wallW1 = random(100, 200); wallS1 += 0.1; score = score+1; println(score); } } void wall2() { //The code for the green walls fill(green); rect(wallX2, wallY2, wallW2, wallH2); wallY2 += wallS2; if (wallY2 > height + 50) { wallY2 = -50; wallX2 = random(50, 350); wallW2 = random(100, 200); wallS2 += 0.1; score = score+1; println(score); } } void wall3() { //The code for the yellow walls fill(yellow); rect(wallX3, wallY3, wallW3, wallH3); wallY3 += wallS3; if (wallY3 > height + 50) { wallY3 = -50; wallX3 = random(50, 350); wallW3 = random(50, 150); wallS3 += 0.1; score = score+1; println(score); } }