/* High Stakes - Two Player Hot Air Balloon Game
Emerson Simmonds
Pilot the ballons with the arrow keys for Player 1 and WASD for Player 2
Try and pop enemy balloons with your spikes and capture their passengers
Avoid the airplanes and the trees
You have 3 lives
*/
//Variable Initialization for player 1
float balloonX = 350;
float balloonY = 260;
float balloonLift = 2;
float balloonSpeed = 2;
float balloonGravity = 0.8;
//Variable Initialization for player 2
float balloonTwoX = 50;
float balloonTwoY = 260;
float balloonTwoLift = 2;
float balloonTwoSpeed = 2;
float balloonTwoGravity = 0.8;
int lives = 3;
int p2Lives = 3;
int score = 0;
int p2Score = 0;
float passenger1X;
float passenger1Y;
boolean passenger1Falling;
float passenger2X;
float passenger2Y;
boolean passenger2Falling;
float passenger3X;
float passenger3Y;
boolean passenger3Falling;
boolean up; //Keypresses
boolean leftKey;
boolean rightKey;
boolean p2Up;
boolean pTwoLeftKey;
boolean pTwoRightKey;
boolean enter;
boolean cloudNumbers = false; //Makes the random cloud numbers generate only once
boolean enemyBalloonDefeat = false; //When the player 1 balloon is popped
boolean enemyBalloonDefeatP2 = false; //Player two balloon popped
boolean gameOver = false; //For game over screen
boolean startGame = false; //For start menu
//Had to declare random cloud variables outside the function
//so they could be outside the if statement without being called repeatedly
float cloud1X;
float cloud1Y;
float cloud1SizeX;
float cloud1SizeY;
float cloud1Speed;
float cloud2X;
float cloud2Y;
float cloud2SizeX;
float cloud2SizeY;
float cloud2Speed;
float cloud3X;
float cloud3Y;
float cloud3SizeX;
float cloud3SizeY;
float cloud3Speed;
float cloud4X;
float cloud4Y;
float cloud4SizeX;
float cloud4SizeY;
float cloud4Speed;
float cloud5X;
float cloud5Y;
float cloud5SizeX;
float cloud5SizeY;
float cloud5Speed;
float cloud6X;
float cloud6Y;
float cloud6SizeX;
float cloud6SizeY;
float cloud6Speed;
float cloud7X;
float cloud7Y;
float cloud7SizeX;
float cloud7SizeY;
float cloud7Speed;
float cloud8X;
float cloud8Y;
float cloud8SizeX;
float cloud8SizeY;
float cloud8Speed;
float cloud9X;
float cloud9Y;
float cloud9SizeX;
float cloud9SizeY;
float cloud9Speed;
float cloud10X;
float cloud10Y;
float cloud10SizeX;
float cloud10SizeY;
float cloud10Speed;
float airplane1;
float airplane2;
boolean airplaneRandom = false;
void setup() {
//Initializes size and eliminates cursor
size(400, 400);
noCursor();
}
void draw() {
//checks to see if the game has ended to keep running game
if (gameOver == false && startGame == true) {
//Draws the background before anything else
drawBackground();
//Functional Stuff
collision();
passengers();
playerDeath();
buttonInput();
//Drawing all the sections
drawTrees();
drawUI();
drawPlayers();
drawClouds();
//Runs the game over menu
} else if (startGame == true) {
background(100, 149, 237);
rectMode(CENTER);
textSize(34);
text("Game Over", 100, 100);
text("P1 Score: ", 90, 200);
text(score, 260, 200);
text("P2 Score: ", 90, 240);
text(p2Score, 260, 240);
}
//Start game menu
if (startGame == false) {
background(100, 149, 237);
rectMode(CENTER);
textSize(34);
text("High Stakes", 100, 150);
text("Press Enter to Start", 40, 200);
text("P1", 80, 260);
text("P2", 280, 260);
fill(255);
noStroke();
rect(40, 360, 40, 40, 4);
rect(100, 360, 40, 40, 4);
rect(160, 360, 40, 40, 4);
rect(100, 300, 40, 40, 4);
rect(360, 360, 40, 40, 4);
rect(300, 360, 40, 40, 4);
rect(240, 360, 40, 40, 4);
rect(300, 300, 40, 40, 4);
fill(0);
textSize(15);
text("A", 30, 360);
text("D", 150, 360);
text("W", 90, 300);
textSize(10);
text("LEFT", 350, 360);
text("RIGHT", 225, 360);
text("UP", 290, 300);
if (enter == true) {
startGame = true;
}
}
}
void passengers() {
//If player 2 pops player 1
if (enemyBalloonDefeat == true) {
passenger1X = balloonX;
passenger1Y = balloonY + 10;
passenger1Falling = true;
}
//Player one picks up
if (passenger1X > balloonX - 10 && passenger1X < balloonX + 10 && passenger1Y > balloonY -10 && passenger1Y < balloonY +10 && passenger1Falling == true) {
score = score + 1;
passenger1Falling = false;
}
//Player two picks up
if (passenger1X > balloonTwoX - 10 && passenger1X < balloonTwoX + 10 && passenger1Y > balloonTwoY - 10 && passenger1Y < balloonTwoY + 10 && passenger1Falling == true) {
p2Score = p2Score + 1;
passenger1Falling = false;
}
//Passenger falls until picked up or dead
if (passenger1Falling == true) {
passenger1Y += 0.5;
fill(0);
ellipse(passenger1X, passenger1Y, 5, 5);
strokeWeight(2);
stroke(0);
line(passenger1X, passenger1Y, passenger1X, passenger1Y + 5);
} else if (passenger1Y > 400) {
passenger1Falling = false;
}
//If player 1 pops player 2
if (enemyBalloonDefeatP2 == true) {
passenger2X = balloonTwoX;
passenger2Y = balloonTwoY + 10;
passenger2Falling = true;
}
//Player one picks up
if (passenger2X > balloonX - 10 && passenger2X < balloonX + 10 && passenger2Y > balloonY -10 && passenger2Y < balloonY +10 && passenger2Falling == true) {
score = score + 1;
passenger2Falling = false;
}
//Player two picks up
if (passenger2X > balloonTwoX - 10 && passenger2X < balloonTwoX + 10 && passenger2Y > balloonTwoY - 10 && passenger2Y < balloonTwoY + 10 && passenger2Falling == true) {
p2Score = p2Score + 1;
passenger2Falling = false;
}
//Passenger falls until picked up or dead
if (passenger2Falling == true) {
passenger2Y += 0.5;
fill(0);
ellipse(passenger2X, passenger2Y, 5, 5);
strokeWeight(2);
stroke(0);
line(passenger2X, passenger2Y, passenger2X, passenger2Y + 5);
} else if (passenger2Y > 400) {
passenger2Falling = false;
}
}
void playerDeath() {
/*PLAYER ONE DEATH*/
if (enemyBalloonDefeat == true) {
enemyBalloonDefeat = false;
//Checks if player 1 is out of lives
if (lives > 1) {
balloonX = 350;
balloonY = 260;
lives = lives - 1;
} else {
gameOver = true;
}
}
if (balloonY > 360) {
//Checks if player 1 is out of lives
if (lives > 1) {
balloonX = 350;
balloonY = 260;
lives = lives - 1;
} else {
gameOver = true;
}
}
/*PLAYER TWO DEATH*/
if (enemyBalloonDefeatP2 == true) {
enemyBalloonDefeatP2 = false;
//Checks if the player 2 is out of lives
if (p2Lives > 0) {
balloonTwoX = 50;
balloonTwoY = 260;
p2Lives = p2Lives - 1;
} else {
gameOver = true;
}
}
if (balloonTwoY > 360) {
//Checks if the player 2 is out of lives
if (p2Lives > 0) {
balloonTwoX = 50;
balloonTwoY = 260;
p2Lives = p2Lives - 1;
} else {
gameOver = true;
}
}
}
void drawUI() {
//Meant to give the players a sense of competition and let them keep track of the game state
fill(255);
stroke(0);
strokeWeight(2);
rect(355, 372, 100, 55);
rect(45, 372, 100, 55);
fill(0);
textSize(16);
//Displays player 1 stats at the bottom right underneath P1s spawn area
text("P1 Score: ", 310, 360);
text(score, 385, 360);
text("P1 Lives: ", 310, 390);
text(lives, 385, 390);
//Displays player 2 stats at the bottom left underneath P2s spawn area
text("P2 Score: ", 5, 360);
text(p2Score, 80, 360);
text("P2 Lives: ", 5, 390);
text(p2Lives, 80, 390);
}
void drawTrees() {
//tree drawing loop to create tree line on bottom of screen
int trees = 0; //Variable to increment and end loop at 20
int treeMovement = 0; //Variable to increment and move trees right each time it prints them
while (trees <20) {
//Tree trunk brown
fill(98, 78, 44);
noStroke();
rectMode(CENTER);
rect(10 + treeMovement, 390, 8, 35);
//Pine tree green
fill(20, 51, 6);
triangle(2 + treeMovement, 395, 10 + treeMovement, 330, 18 + treeMovement, 395);
treeMovement += 20;
trees++;
}
}
void drawPlayers() {
/* PLAYER ONE */
fill(255);
strokeWeight(1);
stroke(0);
//Base Balloon
ellipse(balloonX-1, balloonY-15, 20, 30);
fill(17, 17, 152);
arc(balloonX-1, balloonY-15, 20, 30, PI * 1.5, PI * 2.5);
fill(255);
ellipse(balloonX-1, balloonY-15, 10, 30);
fill(17, 17, 152);
arc(balloonX-1, balloonY-15, 10, 30, PI * 2.5, PI * 3.5);
ellipse(balloonX-1, balloonY-15, 1, 30);
rectMode(CENTER);
//Spike Metal
fill(72, 72, 73);
triangle(balloonX + 3.5, balloonY + 9, balloonX + 3.5, balloonY + 12, balloonX + 10, balloonY + 10);
triangle(balloonX - 3.5, balloonY + 9, balloonX - 3.5, balloonY + 12, balloonX - 10, balloonY + 10);
triangle(balloonX + 3.5, balloonY + 12, balloonX - 3.5, balloonY + 12, balloonX, balloonY + 20);
//Basket Brown
fill(136, 94, 54);
rect(balloonX, balloonY + 10, 7, 7);
line(balloonX + 5, balloonY -1, balloonX + 3.5, balloonY + 10);
line(balloonX - 6, balloonY -1, balloonX - 3.5, balloonY + 10);
/* PLAYER TWO */
fill(139, 0, 0);
strokeWeight(1);
stroke(0);
//Base Balloon
ellipse(balloonTwoX-1, balloonTwoY-15, 20, 30);
fill(255);
arc(balloonTwoX-1, balloonTwoY-15, 20, 30, PI * 1.5, PI * 2.5);
fill(139, 0, 0);
ellipse(balloonTwoX-1, balloonTwoY-15, 10, 30);
fill(255);
arc(balloonTwoX-1, balloonTwoY-15, 10, 30, PI * 2.5, PI * 3.5);
ellipse(balloonTwoX-1, balloonTwoY-15, 1, 30);
rectMode(CENTER);
//Spike Metal
fill(72, 72, 73);
triangle(balloonTwoX + 3.5, balloonTwoY + 9, balloonTwoX + 3.5, balloonTwoY + 12, balloonTwoX + 10, balloonTwoY + 10);
triangle(balloonTwoX - 3.5, balloonTwoY + 9, balloonTwoX - 3.5, balloonTwoY + 12, balloonTwoX - 10, balloonTwoY + 10);
triangle(balloonTwoX + 3.5, balloonTwoY + 12, balloonTwoX - 3.5, balloonTwoY + 12, balloonTwoX, balloonTwoY + 20);
//Basket Brown
fill(136, 94, 54);
rect(balloonTwoX, balloonTwoY + 10, 7, 7);
line(balloonTwoX + 5, balloonTwoY -1, balloonTwoX + 3.5, balloonTwoY + 10);
line(balloonTwoX - 6, balloonTwoY -1, balloonTwoX - 3.5, balloonTwoY + 10);
}
void drawClouds() {
//Draws the clouds for the players to rest on and use as cover
fill(255);
noStroke();
//Upper Left Cloud
ellipse(0, 150, 150, 5);
arc(0, 150, 40, 40, PI * 2, PI * 3);
arc(40, 150, 68, 30, PI * 2, PI * 3);
//Upper Right Cloud
ellipse(400, 150, 150, 5);
arc(400, 150, 40, 40, PI * 2, PI * 3);
arc(360, 150, 68, 30, PI * 2, PI * 3);
//Lower Left Cloud
ellipse(0, 300, 200, 5);
arc(0, 300, 40, 40, PI * 2, PI * 3);
arc(40, 300, 118, 30, PI * 2, PI * 3);
//Lower Right Cloud
ellipse(400, 300, 200, 5);
arc(400, 300, 40, 40, PI * 2, PI * 3);
arc(360, 300, 118, 30, PI * 2, PI * 3);
//Middle Cloud
ellipse(200, 300, 40, 5);
arc(190, 300, 20, 15, PI * 2, PI * 3);
arc(210, 300, 20, 15, PI * 2, PI * 3);
}
void collision() {
/*AIRPLANE BALLOON COLLISION*/
if (airplaneRandom == false) {
airplane1 = random(-200, -800);
airplane2 = random(450, 800);
airplaneRandom = true;
}
//Steel grey
stroke(1);
fill(175);
//Upper Plane
rect(airplane1 + (frameCount*1.5%1000), 20, 100, 20, 12);
quad((airplane1 - 30) + (frameCount*1.5%1000), 20, (airplane1 - 50) + (frameCount*1.5%1000), 20, (airplane1 - 50) +(frameCount*1.5%1000), 0, (airplane1 - 40) + (frameCount*1.5%1000), 0);
//Dark Blue
fill(0, 0, 139);
//Upper Plane Windows
ellipse((airplane1 + 30) + (frameCount*1.5%1000), 20, 5, 8);
ellipse((airplane1 + 20) + (frameCount*1.5%1000), 20, 5, 8);
ellipse((airplane1 + 10) + (frameCount*1.5%1000), 20, 5, 8);
ellipse((airplane1) + (frameCount*1.5%1000), 20, 5, 8);
ellipse((airplane1 - 10) + (frameCount*1.5%1000), 20, 5, 8);
ellipse((airplane1 - 20) + (frameCount*1.5%1000), 20, 5, 8);
//Lower Plane
fill(175, 175, 175);
rect(airplane2 - (frameCount*1.5%1000), 60, 100, 20, 12);
quad((airplane2 +30) - (frameCount*1.5%1000), 60, (airplane2 + 50) - (frameCount*1.5%1000), 60, (airplane2 + 50) - (frameCount*1.5%1000), 40, (airplane2 + 40) - (frameCount*1.5%1000), 40);
//Dark Blue
fill(0, 0, 139);
//Lower Plane Windows
ellipse((airplane2 -30) - (frameCount*1.5%1000), 60, 5, 8);
ellipse((airplane2 + 20) - (frameCount*1.5%1000), 60, 5, 8);
ellipse((airplane2 + 10) - (frameCount*1.5%1000), 60, 5, 8);
ellipse((airplane2) - (frameCount*1.5%1000), 60, 5, 8);
ellipse((airplane2 - 10) - (frameCount*1.5%1000), 60, 5, 8);
ellipse((airplane2 - 20) - (frameCount*1.5%1000), 60, 5, 8);
//Airplanes hitting Player 1
if ((airplane1 + (frameCount*1.5%1000) > balloonX - 60) && (airplane1 + (frameCount*1.5%1000) < balloonX + 60) && balloonY > 0 && balloonY < 40) {
enemyBalloonDefeat = true;
}
if ((airplane2 - (frameCount*1.5%1000) > balloonX - 60) && (airplane2 - (frameCount*1.5%1000) < balloonX + 60) && (balloonY > 50) && (balloonY < 70)) {
enemyBalloonDefeat = true;
}
//Airplanes hitting Player 2
if ((airplane1 + (frameCount*1.5%1000) > balloonTwoX - 60) && (airplane1 + (frameCount*1.5%1000) < balloonTwoX + 60) && balloonTwoY > 0 && balloonTwoY < 40) {
enemyBalloonDefeatP2 = true;
}
if ((airplane2 - (frameCount*1.5%1000) > balloonTwoX - 60) && (airplane2 - (frameCount*1.5%1000) < balloonTwoX + 60) && (balloonTwoY > 50) && (balloonTwoY < 70)) {
enemyBalloonDefeatP2 = true;
}
/*ENEMY BALLOON COLLISION*/
//Player 2 is hit
if ((balloonY < balloonTwoY-10) && (balloonY > balloonTwoY -38) && (balloonX < balloonTwoX +20) && (balloonX > balloonTwoX -20)) {
enemyBalloonDefeatP2 = true;
}
//Player 1 is hit
if ((balloonTwoY < balloonY-10) && (balloonTwoY > balloonY -38) && (balloonTwoX < balloonX +20) && (balloonTwoX > balloonX -20)) {
enemyBalloonDefeat = true;
}
/*P1 CLOUD COLLISION*/
//Upper Left Cloud Collision
if ((balloonY + 12.5 > 150) && (balloonY + 12.5 < 155) && (balloonX < 75)) {
balloonGravity = 0;
}
//Uper Right Cloud Collision
else if ((balloonY + 12.5 > 150) && (balloonY + 12.5 < 155) && (balloonX > 325)) {
balloonGravity = 0;
}
////Lower Left Cloud Collision
else if ((balloonY + 12.5 > 300) && (balloonY + 12.5 < 305) && (balloonX < 100)) {
balloonGravity = 0;
}
//Lower Right Cloud Collision
else if ((balloonY + 12.5 > 300) && (balloonY + 12.5 < 305) && (balloonX > 300)) {
balloonGravity = 0;
}
//Middle Cloud Collision
else if ((balloonY + 12.5 > 300) && (balloonY + 12.5 < 305) && (balloonX > 180) && (balloonX < 220)) {
balloonGravity = 0;
}
//If not colliding with cloud
else {
balloonGravity = 0.8;
}
/*P2 CLOUD COLLISION*/
//Upper Left Cloud Collision
if ((balloonTwoY + 12.5 > 150) && (balloonTwoY + 12.5 < 155) && (balloonTwoX < 75)) {
balloonTwoGravity = 0;
}
//Uper Right Cloud Collision
else if ((balloonTwoY + 12.5 > 150) && (balloonTwoY + 12.5 < 155) && (balloonTwoX > 325)) {
balloonTwoGravity = 0;
}
////Lower Left Cloud Collision
else if ((balloonTwoY + 12.5 > 300) && (balloonTwoY + 12.5 < 305) && (balloonTwoX < 100)) {
balloonTwoGravity = 0;
}
//Lower Right Cloud Collision
else if ((balloonTwoY + 12.5 > 300) && (balloonTwoY + 12.5 < 305) && (balloonTwoX > 300)) {
balloonTwoGravity = 0;
}
//Middle Cloud Collision
else if ((balloonTwoY + 12.5 > 300) && (balloonTwoY + 12.5 < 305) && (balloonTwoX > 180) && (balloonTwoX < 220)) {
balloonTwoGravity = 0;
}
//If not colliding with cloud
else {
balloonTwoGravity = 0.8;
}
/*P1 BOUNDS COLLISION*/
//Check if out of bounds on left puts it on right of screen
if (balloonX < 0) {
balloonX = 399;
}
//Check if out of bounds on right puts it on the left of screen
if (balloonX > 400) {
balloonX = 1;
}
/*P2 BOUNDS COLLISION*/
//Check if out of bounds on left puts it on right of screen
if (balloonTwoX < 0) {
balloonTwoX = 399;
}
//Check if out of bounds on right puts it on the left of screen
if (balloonTwoX > 400) {
balloonTwoX = 1;
}
}
void buttonInput() {
/* PLAYER ONE INPUT */
//Move left
if (leftKey == true) {
balloonX = balloonX + balloonSpeed;
}
//Move right
if (rightKey == true) {
balloonX = balloonX + balloonSpeed;
}
//Keeps balloon within bounds
if ((balloonY - 12.5) < 0) {
balloonY = balloonY + balloonGravity;
}
//Move up if its in bounds and up key is pressed
else if (up == true) {
balloonY = balloonY + balloonLift;
//Otherwise fall
} else {
balloonY = balloonY + balloonGravity;
}
/* PLAYER TWO INPUT */
//Move left
if (pTwoLeftKey == true) {
balloonTwoX = balloonTwoX + balloonTwoSpeed;
}
//Move right
if (pTwoRightKey == true) {
balloonTwoX = balloonTwoX + balloonTwoSpeed;
}
//Keeps balloon within bounds
if ((balloonTwoY - 12.5) < 0) {
balloonTwoY = balloonTwoY + balloonTwoGravity;
}
//Move up if its in bounds and up key is pressed
else if (p2Up == true) {
balloonTwoY = balloonTwoY + balloonTwoLift;
//Otherwise fall
} else {
balloonTwoY = balloonTwoY + balloonTwoGravity;
}
}
//Key press and releases assigned to variables for use in buttonInput
void keyPressed() {
if (keyCode == ENTER) {
enter = true;
}
//Player 1 keys
if (key == CODED) {
if (keyCode == LEFT) {
leftKey = true;
rightKey = false;
balloonSpeed = -1;
}
}
if (key == CODED) {
if (keyCode == RIGHT) {
rightKey = true;
leftKey = false;
balloonSpeed = 1;
}
}
if (key == CODED) {
if (keyCode == UP) {
up = true;
balloonLift = -2;
}
}
//Player two keys
if (key == 'a') {
pTwoLeftKey = true;
pTwoRightKey = false;
balloonTwoSpeed = -1;
}
if (key == 'd') {
pTwoRightKey = true;
pTwoLeftKey = false;
balloonTwoSpeed = 1;
}
if (key == 'w') {
p2Up = true;
balloonTwoLift = -2;
}
}
void keyReleased() {
//Player one keys
if (key == CODED) {
if (keyCode == LEFT) {
leftKey = false;
}
}
if (key == CODED) {
if (keyCode == RIGHT) {
rightKey = false;
}
}
if (key == CODED) {
if (keyCode == UP) {
up = false;
}
}
//Player two keys
if (key == 'a') {
pTwoLeftKey = false;
}
if (key == 'd') {
pTwoRightKey = false;
}
if (key == 'w') {
p2Up = false;
}
}
void drawBackground() {
//Cornfield blue
background(100, 149, 237);
//Creates random cloud values everytime
if (cloudNumbers == false) {
//Cloud random sizes
cloud1X = random(-200, -800);
cloud1Y = random(20, 250);
cloud1SizeX = random(100, 300);
cloud1SizeY = random(20, 50);
cloud1Speed = random(900, 2000);
cloud2X = random(-200, -400);
cloud2Y = random(20, 250);
cloud2SizeX = random(100, 300);
cloud2SizeY = random(20, 50);
cloud2Speed = random(900, 2000);
cloud3X = random(-200, -400);
cloud3Y = random(20, 250);
cloud3SizeX = random(100, 300);
cloud3SizeY = random(20, 50);
cloud3Speed = random(900, 2000);
cloud4X = random(-200, -400);
cloud4Y = random(20, 250);
cloud4SizeX = random(100, 300);
cloud4SizeY = random(20, 50);
cloud4Speed = random(900, 2000);
cloud5X = random(-200, -400);
cloud5Y = random(20, 250);
cloud5SizeX = random(100, 300);
cloud5SizeY = random(20, 50);
cloud5Speed = random(900, 2000);
cloud6X = random(600, 800);
cloud6Y = random(20, 250);
cloud6SizeX = random(100, 300);
cloud6SizeY = random(20, 50);
cloud6Speed = random(900, 2000);
cloud7X = random(600, 800);
cloud7Y = random(20, 250);
cloud7SizeX = random(100, 300);
cloud7SizeY = random(20, 50);
cloud7Speed = random(900, 2000);
cloud8X = random(600, 800);
cloud8Y = random(20, 250);
cloud8SizeX = random(100, 300);
cloud8SizeY = random(20, 50);
cloud8Speed = random(900, 2000);
cloud9X = random(600, 800);
cloud9Y = random(20, 250);
cloud9SizeX = random(100, 300);
cloud9SizeY = random(20, 50);
cloud9Speed = random(900, 2000);
cloud10X = random(600, 800);
cloud10Y = random(20, 250);
cloud10SizeX = random(100, 300);
cloud10SizeY = random(20, 50);
cloud10Speed = random(1500, 3000);
}
cloudNumbers = true;
//Background transparent clouds coming in from either side
noStroke();
fill(255, 100);
//Leftbound clouds
ellipse(cloud1X + (frameCount*0.5%cloud1Speed), cloud1Y, cloud1SizeX, cloud1SizeY);
ellipse(cloud2X + (frameCount*0.4%cloud2Speed), cloud2Y, cloud2SizeX, cloud2SizeY);
ellipse(cloud3X + (frameCount*0.3%cloud3Speed), cloud3Y, cloud3SizeX, cloud3SizeY);
ellipse(cloud4X + (frameCount*0.2%cloud4Speed), cloud4Y, cloud4SizeX, cloud4SizeY);
ellipse(cloud5X + (frameCount*0.1%cloud5Speed), cloud5Y, cloud5SizeX, cloud5SizeY);
//Rightbound clouds
ellipse(cloud6X - (frameCount*0.5%cloud6Speed), cloud6Y, cloud6SizeX, cloud6SizeY);
ellipse(cloud7X - (frameCount*0.4%cloud7Speed), cloud7Y, cloud7SizeX, cloud7SizeY);
ellipse(cloud8X - (frameCount*0.3%cloud8Speed), cloud8Y, cloud8SizeX, cloud8SizeY);
ellipse(cloud9X - (frameCount*0.2%cloud9Speed), cloud9Y, cloud9SizeX, cloud9SizeY);
ellipse(cloud10X - (frameCount*0.1%cloud10Speed), cloud10Y, cloud10SizeX, cloud10SizeY);
}