//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
/////////////////////////////AVOID THE SUN - BY YANI W.///////////////////////////
///////Avoid the sun particles!! Use "A" and "D" to move from side to side!!//////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
float snowManX, snowManY;
int halfHeight;
float sunX;
float sunY;
float ray1X, ray1Y;
float ray2X, ray2Y;
float ray3X, ray3Y;
boolean left, right;
boolean gameOver;
float speed1, speed2, speed3;
void setup () {
size (600, 800);
//announce functions
setupSnowMan();
setupSun();
setupRay1();
setupRay2();
setupRay3();
}
void draw () {
background (0, 153, 255); //blue background
//draw mountains in the background
noStroke(); //draw snowy land
fill (255);
rectMode (CENTER);
rect (300, 800, 600, 100);
if (gameOver==false) {
for (int i = 0; i < 800; i += 40) {
drawMountains(i);
}
snowManMove();
drawSnowMan();
drawSun();
drawRay1();
drawRay2();
drawRay3();
} else {
background (0);
textAlign (CENTER, CENTER);
textSize (50);
text("Game Over! Try again..", width/2, height/2);
}
}
void drawMountains(float x) {
if (gameOver == false) {
ellipseMode(CENTER);
fill(255);
noStroke();
ellipse(x, height - 50, 50, 50);
}
}
//SETUP ALL THE FUNCTIONS
void setupSnowMan () {
snowManX=300;
snowManY=620;
left = false;
right = false;
halfHeight = 80;
}
void setupSun () {
sunX=300;
sunY=0;
}
void setupRay1 () {
ray1X = random(50, width-50);
ray1Y = 0;
speed1 = random(1, 5);
}
void setupRay2 () {
ray2X = random(50, width-50);
ray2Y = 0;
speed2 = random(1, 5);
}
void setupRay3 () {
ray3X = random(50, width-50);
ray3Y = 0;
speed3 = random(1, 5);
}
//DRAW ALL THE FUNCTIONS
void drawSnowMan () {
if (snowManY - ray1Y <= 60&& snowManY - ray1Y <=60 && snowManX - ray1X >= -35 && snowManX - ray1X <= 35) {
gameOver=true;
}
if (snowManY - ray2Y <= 60 && snowManY - ray1Y <=60 && snowManX - ray2X >= -35 && snowManX - ray2X <= 35) {
gameOver=true;
}
if (snowManY - ray3Y <= 60 && snowManY - ray1Y <=60 && snowManX - ray3X >= -35 && snowManX - ray3X <= 35) {
gameOver=true;
}
//snowman body
ellipse (snowManX, snowManY+80, 100, 100);
ellipse (snowManX, snowManY, 70, 70);
ellipse (snowManX, snowManY-60, 50, 50);
//snowman eyes
noStroke ();
fill (0);
ellipse (snowManX-10, snowManY-65, 10, 10);
ellipse (snowManX+10, snowManY-65, 10, 10);
//carrot nose
noStroke ();
fill (255, 153, 51);
triangle (snowManX, snowManY-60, snowManX-35, snowManY-50, snowManX, snowManY-50);
}
void drawSun () {
//sun
noStroke ();
fill (255, 204, 0);
ellipse (sunX, sunY, 200, 200);
}
//sun particles
void drawRay1 () {
rect (ray1X, ray1Y, 20, 20);
ray1Y += speed1;
if (ray1Y > height+25) {
setupRay1();
}
}
void drawRay2 () {
rect (ray2X, ray2Y, 20, 20);
ray2Y+=speed2;
if (ray2Y > height+25) {
setupRay2();
}
}
void drawRay3 () {
rect (ray3X, ray3Y, 20, 20);
ray3Y +=speed3;
if (ray3Y > height+25) {
setupRay3 ();
}
}
void snowManMove() {
if (right == true) {
snowManX+=5;
} else if (left == true) {
snowManX-=5;
}
}
void keyPressed () {
if (key == 'd'|| key =='D') {
right = true;
}
if (key == 'a' || key =='A') {
left = true;
}
}
void keyReleased() {
if (key == 'd' || key == 'D') {
right = false;
}
if (key == 'a' || key == 'A') {
left = false;
}
}