color hatBrown = color(125, 80, 35); color gun = color(140); color ponchoOne = color(random(0, 255), random(0, 255), random(0, 255)); color ponchoTwo = color(random(0, 255), random(0, 255), random(0, 255)); color shirt = color(210, 210, 255); color shirtDark = color(200, 200, 245); color skin = color(250, 220, 190); color pantsBrown = color(210, 130, 62); color sky = color(130,205,240); boolean movePlayerOne = false; int playerOneXPos = 140; boolean playerOneWin = false; int playerOneWinSpot = 60; boolean movePlayerTwo = false; int playerTwoXPos = 260; boolean playerTwoWin = false; int playerTwoWinSpot = 340; int time; int wait = 1000; int timeDisplay = 4; boolean countDownStarted = false; boolean gameOver = false; int cloudPosX = 80; void setup() { size(400, 400); time = millis(); } void draw() { background(230); drawSky(); drawClouds(); drawMountains(); drawGround(); drawHalfLine(); countDown(); updatePlayerOne(); updatePlayerTwo(); drawPlayerOne(); drawPlayerTwo(); } void drawSky() { fill(sky); rect(0, 0, 400, 200); } void drawClouds() { for (int i = 0; i < 400; i = i+ 180) { fill(255); quad(i + cloudPosX - 110, 40, i + cloudPosX - 90, 20, i + cloudPosX - 90, 80, i + cloudPosX - 110, 60); rect(i + cloudPosX - 90, 20, i + cloudPosX - 70, 80); quad(i + cloudPosX - 70, 20, i + cloudPosX - 50, 40, i + cloudPosX - 50, 60, i + cloudPosX - 70, 80); rect(i + cloudPosX - 80, 30, i + cloudPosX, 50); quad(i + cloudPosX - 80, 50, i + cloudPosX, 50, i + cloudPosX - 20, 70, i + cloudPosX - 80, 70); quad(i + cloudPosX - 70, 30, i + cloudPosX - 50, 10, i + cloudPosX - 20, 10, i + cloudPosX, 30); } } void keyPressed() { //and the player presses V if (key == 'v') { //start the game countDownStarted = true; } //If the game hasnt ended if (gameOver == false) { //and the countdown is finished if (timeDisplay == 0) { //If X is pressed, player one moves if (key == 'x' || key =='X') { movePlayerOne = true; } //If N is pressed, player two moves if (key == 'n' || key == 'N') { movePlayerTwo = true; } } } else if (gameOver == true) { if (key == 'v' || key == 'V') { playerOneXPos = 140; playerTwoXPos = 260; playerOneWin = false; playerTwoWin = false; countDownStarted = true; gameOver=false; } } } //Draw the Mountains void drawMountains() { fill(225, 160, 225); quad(220, 20, 260, 20, 280, 200, 180, 200); quad(260, 60, 280, 60, 320, 200, 220, 200); triangle(280, 100, 380, 200, 260, 200); quad(380, 0, 400, 0, 400, 200, 360, 200); triangle(380, 80, 380, 200, 300, 200); triangle(260, 80, 260, 200, 80, 200); triangle(120, 80, 220, 200, 120, 200); quad(105, 65, 130, 65, 140, 200, 65, 200); quad(60, 90, 80, 90, 100, 200, 20, 200); quad(20, 10, 40, 10, 60, 200, 0, 200); quad(0, 50, 10, 50, 40, 200, 0, 200); } //Draw the ground void drawGround() { fill(250, 240, 180); rect(0, 200, 400, 400); } //Draw the Halfway Line void drawHalfLine() { fill(0); rectMode(CORNERS); rect(198, 240, 202, 360); } //Count Down void countDown() { if (countDownStarted == false) { textSize(32); fill(0); text("Press Start", 120, 100); } if (countDownStarted == true) { if (timeDisplay != 0) { fill(0); text(timeDisplay, 190, 150); } else if (timeDisplay == 0) { if (gameOver == false) { textSize(32); fill(0); text("GO!", 175, 150); } } if (timeDisplay != 0) { if (millis() - time >= wait) { println("time until start: " + timeDisplay); timeDisplay = timeDisplay-1; time = millis(); } } } } //Update the First PLayer void updatePlayerOne() { // println("player one x position: " + playerOneXPos); //If the key is pressed move left if (movePlayerOne == true && playerOneXPos > playerOneWinSpot) { playerOneXPos = playerOneXPos - 6; movePlayerOne = false; } //If player one reache the win spot if (playerOneXPos <= playerOneWinSpot) { textSize(32); fill(0); text("Press Start", 120, 100); textSize(16); text("Player One Wins", 135, 180); playerOneWin = true; gameOver = true; } } //Update the Second Player void updatePlayerTwo() { // println("player two x position: " + playerTwoXPos); //If the key is pressed move right if (movePlayerTwo == true && playerTwoXPos < playerTwoWinSpot) { playerTwoXPos = playerTwoXPos + 6; movePlayerTwo = false; } //if player two wins if (playerTwoXPos >= playerTwoWinSpot) { playerTwoWin = true; textSize(32); fill(0); text("Press Start", 120, 100); textSize(16); text("Player Two Wins", 135, 180); playerTwoWin = true; gameOver = true; } } //Draw the First Player void drawPlayerOne() { if (playerOneWin == true) { fill(pantsBrown); quad(playerOneXPos - 30, 270, playerOneXPos - 40, 270, playerOneXPos - 39, 288, playerOneXPos - 31, 288); //Boot fill(hatBrown); rectMode(CORNERS); rect(playerOneXPos - 30, 286, playerOneXPos - 40, 290); quad(playerOneXPos - 31, 288, playerOneXPos - 39, 288, playerOneXPos - 39, 300, playerOneXPos - 34, 300); quad(playerOneXPos - 20, 297, playerOneXPos - 30, 297, playerOneXPos - 28, 300, playerOneXPos - 20, 300); quad(playerOneXPos - 20, 297, playerOneXPos - 36, 290, playerOneXPos - 36, 296, playerOneXPos - 28, 300); //Shirt fill(shirtDark); rect(playerOneXPos - 29, 260, playerOneXPos - 41, 275); //Poncho fill(ponchoOne); quad(playerOneXPos - 25, 255, playerOneXPos - 30, 250, playerOneXPos - 40, 250, playerOneXPos - 45, 255); triangle(playerOneXPos - 25, 255, playerOneXPos - 45, 255, playerOneXPos - 25, 275); triangle(playerOneXPos - 25, 255, playerOneXPos - 45, 255, playerOneXPos - 45, 275); //Gun fill(gun); rect(playerOneXPos - 15, 262, playerOneXPos - 21, 266); fill(gun-50); triangle(playerOneXPos - 21, 262, playerOneXPos - 24, 267, playerOneXPos - 21, 267); rect(playerOneXPos - 10, 263, playerOneXPos - 16, 265); //Hand fill(skin); rect(playerOneXPos - 22, 266, playerOneXPos - 28, 271); rect(playerOneXPos - 18, 266, playerOneXPos - 23, 268); //Arm fill(shirt); ellipseMode(CENTER); ellipse(playerOneXPos - 35, 258, 8, 8); rect(playerOneXPos - 31, 258, playerOneXPos - 39, 267); rect(playerOneXPos - 27, 265, playerOneXPos - 39, 272); //Head noStroke(); fill(skin); rectMode(CORNERS); rect(playerOneXPos - 29, 240, playerOneXPos - 41, 250); triangle(playerOneXPos - 29, 250, playerOneXPos - 41, 250, playerOneXPos - 29, 252); triangle(playerOneXPos - 29, 240, playerOneXPos - 29, 247, playerOneXPos - 25, 247); quad(playerOneXPos - 41, 240, playerOneXPos - 44, 240, playerOneXPos - 44, 244, playerOneXPos - 41, 246); //Hat noStroke(); fill(hatBrown); triangle(playerOneXPos - 29, 230, playerOneXPos - 35, 225, playerOneXPos - 41, 230); rectMode(CORNERS); rect(playerOneXPos - 29, 230, playerOneXPos - 41, 235); quad(playerOneXPos - 20, 240, playerOneXPos - 25, 234, playerOneXPos - 45, 234, playerOneXPos - 50, 240); //Eye fill(0); rect(playerOneXPos - 30, 242, playerOneXPos - 34, 243); } else { //Leg fill(pantsBrown); quad(playerOneXPos + 30, 270, playerOneXPos + 40, 270, playerOneXPos + 39, 288, playerOneXPos + 31, 288); //Boot fill(hatBrown); rectMode(CORNERS); rect(playerOneXPos + 30, 286, playerOneXPos + 40, 290); quad(playerOneXPos + 31, 288, playerOneXPos + 39, 288, playerOneXPos + 39, 300, playerOneXPos + 34, 300); quad(playerOneXPos + 20, 297, playerOneXPos + 30, 297, playerOneXPos + 28, 300, playerOneXPos + 20, 300); quad(playerOneXPos + 20, 297, playerOneXPos + 36, 290, playerOneXPos + 36, 296, playerOneXPos + 28, 300); //Shirt fill(shirtDark); rect(playerOneXPos + 29, 260, playerOneXPos + 41, 275); //Poncho fill(ponchoOne); quad(playerOneXPos + 25, 255, playerOneXPos + 30, 250, playerOneXPos + 40, 250, playerOneXPos + 45, 255); triangle(playerOneXPos + 25, 255, playerOneXPos + 45, 255, playerOneXPos + 25, 275); triangle(playerOneXPos + 25, 255, playerOneXPos + 45, 255, playerOneXPos + 45, 275); //Gun fill(gun); rect(playerOneXPos + 15, 262, playerOneXPos + 21, 266); fill(gun-50); triangle(playerOneXPos + 21, 262, playerOneXPos + 24, 267, playerOneXPos + 21, 267); rect(playerOneXPos + 10, 263, playerOneXPos + 16, 265); //Hand fill(skin); rect(playerOneXPos + 22, 266, playerOneXPos + 28, 271); rect(playerOneXPos + 18, 266, playerOneXPos + 23, 268); //Arm fill(shirt); ellipseMode(CENTER); ellipse(playerOneXPos + 35, 258, 8, 8); rect(playerOneXPos + 31, 258, playerOneXPos + 39, 267); rect(playerOneXPos + 27, 265, playerOneXPos + 39, 272); //Head noStroke(); fill(skin); rectMode(CORNERS); rect(playerOneXPos + 29, 240, playerOneXPos + 41, 250); triangle(playerOneXPos + 29, 250, playerOneXPos + 41, 250, playerOneXPos + 29, 252); triangle(playerOneXPos + 29, 240, playerOneXPos + 29, 247, playerOneXPos + 25, 247); quad(playerOneXPos + 41, 240, playerOneXPos + 44, 240, playerOneXPos + 44, 244, playerOneXPos + 41, 246); //Hat noStroke(); fill(hatBrown); triangle(playerOneXPos + 29, 230, playerOneXPos + 35, 225, playerOneXPos + 41, 230); rectMode(CORNERS); rect(playerOneXPos + 29, 230, playerOneXPos + 41, 235); quad(playerOneXPos + 20, 240, playerOneXPos + 25, 234, playerOneXPos + 45, 234, playerOneXPos + 50, 240); //Eye fill(0); rect(playerOneXPos + 30, 242, playerOneXPos + 34, 243); } } void drawPlayerTwo() { if (playerTwoWin == true) { fill(pantsBrown); quad(playerTwoXPos + 30, 270, playerTwoXPos + 40, 270, playerTwoXPos + 39, 288, playerTwoXPos + 31, 288); //Boot fill(hatBrown); rectMode(CORNERS); rect(playerTwoXPos + 30, 286, playerTwoXPos + 40, 290); quad(playerTwoXPos + 31, 288, playerTwoXPos + 39, 288, playerTwoXPos + 39, 300, playerTwoXPos + 34, 300); quad(playerTwoXPos + 20, 297, playerTwoXPos + 30, 297, playerTwoXPos + 28, 300, playerTwoXPos + 20, 300); quad(playerTwoXPos + 20, 297, playerTwoXPos + 36, 290, playerTwoXPos + 36, 296, playerTwoXPos + 28, 300); //Shirt fill(shirtDark); rect(playerTwoXPos + 29, 260, playerTwoXPos + 41, 275); //Poncho fill(ponchoOne); quad(playerTwoXPos + 25, 255, playerTwoXPos + 30, 250, playerTwoXPos + 40, 250, playerTwoXPos + 45, 255); triangle(playerTwoXPos + 25, 255, playerTwoXPos + 45, 255, playerTwoXPos + 25, 275); triangle(playerTwoXPos + 25, 255, playerTwoXPos + 45, 255, playerTwoXPos + 45, 275); //Gun fill(gun); rect(playerTwoXPos + 15, 262, playerTwoXPos + 21, 266); fill(gun-50); triangle(playerTwoXPos + 21, 262, playerTwoXPos + 24, 267, playerTwoXPos + 21, 267); rect(playerTwoXPos + 10, 263, playerTwoXPos + 16, 265); //Hand fill(skin); rect(playerTwoXPos + 22, 266, playerTwoXPos + 28, 271); rect(playerTwoXPos + 18, 266, playerTwoXPos + 23, 268); //Arm fill(shirt); ellipseMode(CENTER); ellipse(playerTwoXPos + 35, 258, 8, 8); rect(playerTwoXPos + 31, 258, playerTwoXPos + 39, 267); rect(playerTwoXPos + 27, 265, playerTwoXPos + 39, 272); //Head noStroke(); fill(skin); rectMode(CORNERS); rect(playerTwoXPos + 29, 240, playerTwoXPos + 41, 250); triangle(playerTwoXPos + 29, 250, playerTwoXPos + 41, 250, playerTwoXPos + 29, 252); triangle(playerTwoXPos + 29, 240, playerTwoXPos + 29, 247, playerTwoXPos + 25, 247); quad(playerTwoXPos + 41, 240, playerTwoXPos + 44, 240, playerTwoXPos + 44, 244, playerTwoXPos + 41, 246); //Hat noStroke(); fill(hatBrown); triangle(playerTwoXPos + 29, 230, playerTwoXPos + 35, 225, playerTwoXPos + 41, 230); rectMode(CORNERS); rect(playerTwoXPos + 29, 230, playerTwoXPos + 41, 235); quad(playerTwoXPos + 20, 240, playerTwoXPos + 25, 234, playerTwoXPos + 45, 234, playerTwoXPos + 50, 240); //Eye fill(0); rect(playerTwoXPos + 30, 242, playerTwoXPos + 34, 243); } else { //Leg fill(pantsBrown); quad(playerTwoXPos - 30, 270, playerTwoXPos - 40, 270, playerTwoXPos - 39, 288, playerTwoXPos - 31, 288); //Boot fill(hatBrown); rectMode(CORNERS); rect(playerTwoXPos - 30, 286, playerTwoXPos - 40, 290); quad(playerTwoXPos - 31, 288, playerTwoXPos - 39, 288, playerTwoXPos - 39, 300, playerTwoXPos - 34, 300); quad(playerTwoXPos - 20, 297, playerTwoXPos - 30, 297, playerTwoXPos - 28, 300, playerTwoXPos - 20, 300); quad(playerTwoXPos - 20, 297, playerTwoXPos - 36, 290, playerTwoXPos - 36, 296, playerTwoXPos - 28, 300); //Shirt fill(shirtDark); rect(playerTwoXPos - 29, 260, playerTwoXPos - 41, 275); //Poncho fill(ponchoTwo); quad(playerTwoXPos - 25, 255, playerTwoXPos - 30, 250, playerTwoXPos - 40, 250, playerTwoXPos - 45, 255); triangle(playerTwoXPos - 25, 255, playerTwoXPos - 45, 255, playerTwoXPos - 25, 275); triangle(playerTwoXPos - 25, 255, playerTwoXPos - 45, 255, playerTwoXPos - 45, 275); //Gun fill(gun); rect(playerTwoXPos - 15, 262, playerTwoXPos - 21, 266); fill(gun-50); triangle(playerTwoXPos - 21, 262, playerTwoXPos - 24, 267, playerTwoXPos - 21, 267); rect(playerTwoXPos - 10, 263, playerTwoXPos - 16, 265); //Hand fill(skin); rect(playerTwoXPos - 22, 266, playerTwoXPos - 28, 271); rect(playerTwoXPos - 18, 266, playerTwoXPos - 23, 268); //Arm fill(shirt); ellipseMode(CENTER); ellipse(playerTwoXPos - 35, 258, 8, 8); rect(playerTwoXPos - 31, 258, playerTwoXPos - 39, 267); rect(playerTwoXPos - 27, 265, playerTwoXPos - 39, 272); //Head noStroke(); fill(skin); rectMode(CORNERS); rect(playerTwoXPos - 29, 240, playerTwoXPos - 41, 250); triangle(playerTwoXPos - 29, 250, playerTwoXPos - 41, 250, playerTwoXPos - 29, 252); triangle(playerTwoXPos - 29, 240, playerTwoXPos - 29, 247, playerTwoXPos - 25, 247); quad(playerTwoXPos - 41, 240, playerTwoXPos - 44, 240, playerTwoXPos - 44, 244, playerTwoXPos - 41, 246); //Hat noStroke(); fill(hatBrown); triangle(playerTwoXPos - 29, 230, playerTwoXPos - 35, 225, playerTwoXPos - 41, 230); rectMode(CORNERS); rect(playerTwoXPos - 29, 230, playerTwoXPos - 41, 235); quad(playerTwoXPos - 20, 240, playerTwoXPos - 25, 234, playerTwoXPos - 45, 234, playerTwoXPos - 50, 240); //Eye fill(0); rect(playerTwoXPos - 30, 242, playerTwoXPos - 34, 243); } }