xxxxxxxxxx
// VARIABLE SPACE
var lcloudrect = 90;
var lcloud1 = 125;
var lcloud2 = 135;
var lcloud3 = 170;
var lcloud4 = 110;
var lcloud5 = 90;
var lcloud6 = 97;
var mcloudrect = 285;
var mcloud1 = 325;
var mcloud2 = 335;
var mcloud3 = 370;
var mcloud4 = 310;
var mcloud5 = 290;
var mcloud6 = 297;
var rcloudrect = 485;
var rcloud1 = 525;
var rcloud2 = 535;
var rcloud3 = 570;
var rcloud4 = 510;
var rcloud5 = 490;
var rcloud6 = 497;
var hairXPos = 0;
var headXPos = 0;
var leftearXPos = 0;
var rightearXPos = 0;
var neckXPos = 0;
var leftEarringXPos = 0;
var rightEarringXPos = 0;
var lefteyeXPos = 0;
var righteyeXPos = 0;
var mouthXPos1 = 0;
var mouthXPos2 = 0;
var mouthXPos3 = 0;
var shirtXPos = 0;
var pantsXPos = 0;
var pantslineXPos = 0;
var lefthandXPos = 0;
var righthandXPos = 0;
var leftshoeXPos = 0;
var rightshoeXPos = 0;
var hairYPos = 0;
var headYPos = 0;
var leftearYPos = 0;
var rightearYPos = 0;
var neckYPos = 0;
var leftEarringYPos = 0;
var rightEarringYPos = 0;
var lefteyeYPos = 0;
var righteyeYPos = 0;
var mouthYPos1 = 0;
var mouthYPos2 = 0;
var mouthYPos3 = 0;
var shirtYPos = 0;
var pantsYPos = 0;
var pantslineYPos1 = 0;
var pantslineYPos2 = 0;
var lefthandYPos = 0;
var righthandYPos = 0;
var leftshoeYPos = 0;
var rightshoeYPos = 0;
var r = 191;
var g = 67;
var b = 171;
var timer = 20;
var iFunction;
var bee1;
var bee2;
var bee3;
var bee4;
var bee5;
var bee6;
var speed = 1;
var distance;
var d1;
var d2;
var d3;
var d4;
var d5;
var d6;
var characterLives = 3;
// SETUP
function setup() {
createCanvas(700, 700);
frameRate(10);
hairXPos = 85;
headXPos = 100;
leftearXPos = 100;
rightearXPos = 200;
neckXPos = 143;
leftEarringXPos = 95;
rightEarringXPos = 205;
lefteyeXPos = 120;
righteyeXPos = 175;
mouthXPos1 = 143;
mouthXPos2 = 150;
mouthXPos3 = 156;
shirtXPos = 120;
pantsXPos = 120;
pantslineXPos = 153;
lefthandXPos = 115;
righthandXPos = 190;
leftshoeXPos = 125;
rightshoeXPos = 180;
hairYPos = 435;
headYPos = 450;
leftearYPos = 485;
rightearYPos = 485;
neckYPos = 520;
leftEarringYPos = 505;
rightEarringYPos = 505;
lefteyeYPos = 480;
righteyeYPos = 480;
mouthYPos1 = 500;
mouthYPos2 = 505;
mouthYPos3 = 500;
shirtYPos = 535;
pantsYPos = 590;
pantslineYPos1 = 591;
pantslineYPos2 = 668;
lefthandYPos = 590;
righthandYPos = 590;
leftshoeYPos = 673;
rightshoeYPos = 673;
iFunction = setInterval(intervalFunction, 1000);
bee1 = new Bees();
bee2 = new Bees();
bee3 = new Bees();
bee4 = new Bees();
bee5 = new Bees();
bee6 = new Bees();
}
// DRAW
function draw() {
//USER has to avoid objects for 20 seconds
//USER has 3 lives
// Timer = 20 seconds
// User didn't hit any objects
background(154, 198, 227);
setting();
characterBuild();
textSize(20);
text(timer, 10, 20);
text(characterLives, 650, 20);
fill (21, 21, 97);
textSize(25);
text("avoid the bees till the timer runs out", 145, 50);
bee1.draw();
bee1.move();
bee2.draw();
bee2.move();
bee3.draw();
bee3.move();
bee4.draw();
bee4.move();
bee5.draw();
bee5.move();
bee6.draw();
bee6.move();
//COLLISIONS
//shirtXPos, shirtYPos
//bee1.x, bee1.y
//bee2.x, bee2.y
//...
//calculate distance between char and objects
d1 = dist(bee1.x, bee1.y, shirtXPos, shirtYPos);
if (d1<60){
characterLives = characterLives - 1
}
d2 = dist(bee2.x, bee2.y, shirtXPos, shirtYPos);
if (d2<60){
charcterLives = characterLives - 1
}
d3 = dist(bee3.x, bee3.y, shirtXPos, shirtYPos);
if (d3<60){
characterLives = characterLives - 1
}
d4 = dist(bee4.x, bee4.y, shirtXPos, shirtYPos);
if (d4<60){
characterLives = characterLives - 1
}
d5 = dist(bee5.x, bee5.y, shirtXPos, shirtYPos);
if (d5<60){
characterLives = characterLives - 1
}
d6 = dist(bee6.x, bee6.y, shirtXPos, shirtYPos);
if (d6<60){
characterLives = characterLives - 1
}
if (characterLives < 1){
losingFunction();
}
if (timer == 0){
if (characterLives > 0){
winningFunction();
}
}
}
//SPECIAL FUNCTIONS
function keyPressed() {
// KEY INTERACTIONS
if (keyCode == RIGHT_ARROW) {
hairXPos = hairXPos + 10;
headXPos = headXPos + 10;
leftearXPos = leftearXPos + 10;
rightearXPos = rightearXPos + 10;
neckXPos = neckXPos + 10;
leftEarringXPos = leftEarringXPos + 10;
rightEarringXPos = rightEarringXPos + 10;
lefteyeXPos = lefteyeXPos + 10;
righteyeXPos = righteyeXPos + 10;
mouthXPos1 = mouthXPos1 + 10;
mouthXPos2 = mouthXPos2 + 10;
mouthXPos3 = mouthXPos3 + 10;
shirtXPos = shirtXPos + 10;
pantsXPos = pantsXPos + 10;
pantslineXPos = pantslineXPos + 10;
lefthandXPos = lefthandXPos + 10;
righthandXPos = righthandXPos + 10;
leftshoeXPos = leftshoeXPos + 10;
rightshoeXPos = rightshoeXPos + 10;
} else if (keyCode == LEFT_ARROW) {
hairXPos = hairXPos - 10;
headXPos = headXPos - 10;
leftearXPos = leftearXPos - 10;
rightearXPos = rightearXPos - 10;
neckXPos = neckXPos - 10;
leftEarringXPos = leftEarringXPos - 10;
rightEarringXPos = rightEarringXPos - 10;
lefteyeXPos = lefteyeXPos - 10;
righteyeXPos = righteyeXPos - 10;
mouthXPos1 = mouthXPos1 - 10;
mouthXPos2 = mouthXPos2 - 10;
mouthXPos3 = mouthXPos3 - 10;
shirtXPos = shirtXPos - 10;
pantsXPos = pantsXPos - 10;
pantslineXPos = pantslineXPos - 10;
lefthandXPos = lefthandXPos - 10;
righthandXPos = righthandXPos - 10;
leftshoeXPos = leftshoeXPos - 10;
rightshoeXPos = rightshoeXPos - 10;
} else if (keyCode == UP_ARROW) {
hairYPos = hairYPos - 10;
headYPos = headYPos - 10;
rightearYPos = rightearYPos - 10;
leftearYPos = leftearYPos - 10;
neckYPos = neckYPos - 10;
leftEarringYPos = leftEarringYPos - 10;
rightEarringYPos = rightEarringYPos - 10;
lefteyeYPos = lefteyeYPos - 10;
righteyeYPos = righteyeYPos - 10;
mouthYPos1 = mouthYPos1 - 10;
mouthYPos2 = mouthYPos2 - 10;
mouthYPos3 = mouthYPos3 - 10;
shirtYPos = shirtYPos - 10;
pantsYPos = pantsYPos - 10;
pantslineYPos1 = pantslineYPos1 - 10;
pantslineYPos2 = pantslineYPos2 - 10;
lefthandYPos = lefthandYPos - 10;
righthandYPos = righthandYPos - 10;
leftshoeYPos = leftshoeYPos - 10;
rightshoeYPos = rightshoeYPos - 10;
} else if (keyCode == DOWN_ARROW) {
hairYPos = hairYPos + 10;
headYPos = headYPos + 10;
rightearYPos = rightearYPos + 10;
leftearYPos = leftearYPos + 10;
neckYPos = neckYPos + 10;
leftEarringYPos = leftEarringYPos + 10;
rightEarringYPos = rightEarringYPos + 10;
lefteyeYPos = lefteyeYPos + 10;
righteyeYPos = righteyeYPos + 10;
mouthYPos1 = mouthYPos1 + 10;
mouthYPos2 = mouthYPos2 + 10;
mouthYPos3 = mouthYPos3 + 10;
shirtYPos = shirtYPos + 10;
pantsYPos = pantsYPos + 10;
pantslineYPos1 = pantslineYPos1 + 10;
pantslineYPos2 = pantslineYPos2 + 10;
lefthandYPos = lefthandYPos + 10;
righthandYPos = righthandYPos + 10;
leftshoeYPos = leftshoeYPos + 10;
rightshoeYPos = rightshoeYPos + 10;
}
}
function setting() {
noStroke();
//clouds
fill(250);
//left cloud
rect(lcloudrect, 85, 90, 60, 20);
ellipse(lcloud1, 90, 40, 40);
ellipse(lcloud2, 97, 40, 40);
ellipse(lcloud3, 125, 40, 40);
ellipse(lcloud4, 80, 40, 40);
ellipse(lcloud5, 120, 40, 40);
ellipse(lcloud6, 106, 40, 40);
//middle cloud
rect(mcloudrect, 55, 90, 60, 20);
ellipse(mcloud1, 60, 40, 40);
ellipse(mcloud2, 67, 40, 40);
ellipse(mcloud3, 95, 40, 40);
ellipse(mcloud4, 50, 40, 40);
ellipse(mcloud5, 90, 40, 40);
ellipse(mcloud6, 76, 40, 40);
//right cloud
rect(rcloudrect, 75, 90, 60, 20);
ellipse(rcloud1, 80, 40, 40);
ellipse(rcloud2, 87, 40, 40);
ellipse(rcloud3, 115, 40, 40);
ellipse(rcloud4, 70, 40, 40);
ellipse(rcloud5, 110, 40, 40);
ellipse(rcloud6, 96, 40, 40);
//cloud movement
lcloudrect = lcloudrect + 2;
lcloud1 = lcloud1 + 2;
lcloud2 = lcloud2 + 2;
lcloud3 = lcloud3 + 2;
lcloud4 = lcloud4 + 2;
lcloud5 = lcloud5 + 2;
lcloud6 = lcloud6 + 2;
mcloudrect = mcloudrect + 2.5;
mcloud1 = mcloud1 + 2.5;
mcloud2 = mcloud2 + 2.5;
mcloud3 = mcloud3 + 2.5;
mcloud4 = mcloud4 + 2.5;
mcloud5 = mcloud5 + 2.5;
mcloud6 = mcloud6 + 2.5;
rcloudrect = rcloudrect + 2.5;
rcloud1 = rcloud1 + 2.5;
rcloud2 = rcloud2 + 2.5;
rcloud3 = rcloud3 + 2.5;
rcloud4 = rcloud4 + 2.5;
rcloud5 = rcloud5 + 2.5;
rcloud6 = rcloud6 + 2.5;
// cloud reset
if (lcloudrect == 700) {
lcloudrect = 90;
lcloud1 = 125;
lcloud2 = 135;
lcloud3 = 170;
lcloud4 = 110;
lcloud5 = 90;
lcloud6 = 97;
}
if (mcloudrect == 700) {
mcloudrect = 285;
mcloud1 = 325;
mcloud2 = 335;
mcloud3 = 370;
mcloud4 = 310;
mcloud5 = 290;
mcloud6 = 297;
}
if (rcloudrect == 670) {
rcloudrect = 85;
rcloud1 = 125;
rcloud2 = 135;
rcloud3 = 170;
rcloud4 = 110;
rcloud5 = 90;
rcloud6 = 97;
}
//tree
fill(105, 83, 18);
rect(600, 300, 100, 3000);
fill(18, 105, 32);
ellipse(650, 300, 300, 220);
ellipse(620, 240, 200, 155);
//grass
fill(41, 128, 54)
rect(0, 650, 600, 650);
}
function characterBuild() {
//hair
fill(0);
rect(hairXPos, hairYPos, 130, 115, 10, 10, 0, 0);
//earrings
noFill();
stroke(227, 191, 48);
strokeWeight(1);
ellipse(leftEarringXPos, leftEarringYPos, 25, 25);
ellipse(rightEarringXPos, rightEarringYPos, 25, 25);
//head, ears, neck
noStroke();
fill(156, 104, 56)
rect(headXPos, headYPos, 100, 80, 10);
ellipse(rightearXPos, rightearYPos, 15, 20);
ellipse(leftearXPos, leftearYPos, 15, 20);
rect(neckXPos, neckYPos, 15, 30);
//eyes, mouth
stroke(0);
strokeWeight(10);
point(lefteyeXPos, lefteyeYPos);
point(righteyeXPos, righteyeYPos);
noStroke();
fill(214, 36, 84);
triangle(mouthXPos1, mouthYPos1, mouthXPos2, mouthYPos2, mouthXPos3, mouthYPos3);
// MOUSE INTERACTIONS
if (mouseIsPressed) {
//shirt
noStroke();
r = random(255);
g = random(255);
b = random(255);
fill(r, g, b);
rect(shirtXPos, shirtYPos, 65, 60, 10);
} else {
//shirt
noStroke();
fill(r, g, b);
rect(shirtXPos, shirtYPos, 65, 60, 10);
}
//pants
stroke(0);
strokeWeight(2);
fill(43, 41, 120);
rect(pantsXPos, pantsYPos, 65, 80, 0, 0, 10, 10);
line(pantslineXPos, pantslineYPos1, pantslineXPos, pantslineYPos2);
//hands
stroke(156, 104, 56);
strokeWeight(15);
point(lefthandXPos, lefthandYPos);
point(righthandXPos, righthandYPos);
//shoes
noStroke();
fill(84, 76, 78);
ellipse(leftshoeXPos, leftshoeYPos, 30, 20);
ellipse(rightshoeXPos, rightshoeYPos, 30, 20);
}
function winningFunction() {
fill(235, 134, 33);
textFont('Georgia');
textSize(50);
text("YOU WON!", 230, 350);
}
function losingFunction() {
fill(219, 40, 24);
textFont('Georgia');
textSize(50);
text("TRY AGAIN!", 230, 350);
}
function intervalFunction() {
print(timer);
timer -= 1;
if (timer == 0) {
print("Done");
clearInterval(iFunction);
}
}
// OBJECT BLUEPRINT
class Bees {
// VARIABLES
constructor() {
this.x = random(100, 700);
this.y = random(150, 700);
this.r = 239;
this.g = 245;
this.b = 66;
this.speedx = random(-5, 5);
this.speedy = random(-5, 5);
}
// FUNCTIONS
draw() {
noStroke();
fill(239, 245, 66);
ellipse(this.x, this.y, 15, 15);
}
move() {
this.x = this.x + this.speedx
this.y = this.y + this.speedy
if (this.x < 100 || this.x > 680) {
this.speedx = -this.speedx
}
if (this.y < 100 || this.y > 680){
this.speedy = -this.speedy
}
}
}