Press mouse to chair hair and eyes. Move mouse to move lights, press right and left arrows to move Disco Chick.
xxxxxxxxxx
//global variables
var r=1;
var g=2;
var b=3;
var re=255;
var gr=250;
var bl=176;
var L=255;
var E=240;
var D=230;
var xPosition=0;
var yPosition=0;
var hairxposition=230;
var headxposition=230;
var eyeRxposition=245;
var eyeLxposition=215;
var mouthxposition=230;
var neck1xposition=220;
var neck2xposition=0;
var xpoint1=218;
var xpoint2=230;
var xpoint3=240;
var shoulderRxposition=185;
var shoulderLxposition=245;
var upperarmRxposition=255;
var upperarmLxposition=185;
var forearmRxposition=263;
var forearmLxposition=145;
var righthandxposition=312;
var lefthandxposition=138;
var xpointa=190;
var xpointb=210;
var xpointc=250;
var xpointd=270;
var rightlegxposition=240;
var leftlegxposition=210;
var rightfootxposition=215;
var leftfootxposition=247;
var leftmagic1 =0;
var leftmagic2 =140;
var leftmagic3 =200;
var rightmagic1 =240;
var rightmagic2 =310;
var rightmagic3 =450;
var v1;
var v2;
var v3;
var v4;
var v5;
var v6;
var v7;
var v8;
var v9;
var v10;
var vibes = [];
var vibesCollected = 0;
var timerFunction;
var timer = 0;
var iFunction;
function setup() {
createCanvas(700, 700);
setTimeout(timerFunction, 3000);
iFunction = setInterval(intervalFunction, 1000);
time = 0;
WinningFunction();
LosingFunction();
}
function draw() {
background(22, 0, 54);
//object functions
for(var i = 0; i < vibes.length; i++){
vibes[i].draw();
vibes[i].move();
d1left = dist(vibes[i].x, vibes[i].y, leftmagic2 - 10, mouseY +30);
d1right = dist(vibes[i].x, vibes[i].y, rightmagic2 - 10, mouseY +30);
if(d1left < 60){
print(vibesCollected);
vibesCollected += 1;
vibes.splice(i, 1);
}
if(d1right < 60){
print(vibesCollected);
vibesCollected += 1;
vibes.splice(i, 1);
}
}
for(x = 0; x < 200; x++){
drawObject(); }
if (timer == 30){
if(vibesCollected > 10){
WinningFunction();}
}
if (timer == 30){
if(vibesCollected < 10){
LosingFunction();}
}
fill(255);
textSize(100)
text(timer,590,80);
if (mouseIsPressed){
r=random(255);
g=random(255);
b=random(255);
frameRate(10)
}
//stage
fill(0);
frameRate(10);
strokeWeight( 4);
stroke(random(L), random(E), random(D));
rect(105, 600, 550, 90);
ellipse(380, 600, 550, 70);
//magic lights
fill(random(re), random(bl), random(gr));
strokeWeight(0)
triangle(leftmagic1, pmouseY, leftmagic2, 450, leftmagic3, pmouseY);
fill (random(re), random(bl), random(gr));
triangle(rightmagic1, pmouseY, rightmagic2, 450, rightmagic3, pmouseY);
//Hair
fill(r, g, b);
circle(hairxposition, 305, 160);
//Head
noStroke();
fill (117, 61, 8);
circle(headxposition, 338, 80);
//face
fill(r, g, b);
ellipse( eyeLxposition, 335, 10, 15);
ellipse( eyeRxposition, 335, 10, 15);
fill(0, 0, 0);
circle(mouthxposition, 355, 10);
//left arm
fill (117, 61, 8);
rect(upperarmLxposition, 420, 15, 45);
rect(forearmLxposition, 450, 45, 15);
circle(lefthandxposition, 455, 25);
//right arm
rect(upperarmRxposition, 420, 15, 45);
rect(forearmRxposition, 455, 45, 15);
circle(righthandxposition, 460, 25);
//Left leg
rect(leftlegxposition, 505, 15, 85);
fill(163, 176, 196);
circle(leftfootxposition, 600, 30);
//right leg
fill(163, 176, 196)
circle(rightfootxposition, 600, 30);
fill (117, 61, 8);
rect(rightlegxposition, 505, 15, 85);
//dress
fill(255, 232, 248);
strokeWeight(10);
quad(xpointa, 505, xpointb, 390, xpointc, 390, xpointd, 505);
square(shoulderRxposition, 390, 30, 15, 8, 3, 2);
square(shoulderLxposition, 390, 30, 10, 15, 2, 3);
//neck
fill(117, 61, 8);
triangle(xpoint1, 390, xpoint2, 410, xpoint3, 390);
rect(neck1xposition, 375, 17, 17);
}
//SPECIAL fUNCTIONS
function keyPressed(){
if (keyCode===LEFT_ARROW){
neck1xposition = neck1xposition - 10;
headxposition = headxposition -10;
eyeLxposition = eyeLxposition -10;
eyeRxposition = eyeRxposition -10;
hairxposition = hairxposition -10;
mouthxposition = mouthxposition -10;
shoulderRxposition = shoulderRxposition -10;
shoulderLxposition =shoulderLxposition -10;
upperarmRxposition = upperarmRxposition -10;
upperarmLxposition = upperarmLxposition -10;
forearmRxposition = forearmRxposition -10;
forearmLxposition = forearmLxposition -10;
righthandxposition = righthandxposition -10;
lefthandxposition = lefthandxposition -10;
rightlegxposition = rightlegxposition -10;
leftlegxposition = leftlegxposition-10;
rightfootxposition = rightfootxposition -10;
leftfootxposition = leftfootxposition-10;
xpoint1 = xpoint1 -10;
xpoint2 = xpoint2 -10;
xpoint3 = xpoint3 -10;
xpointa = xpointa -10;
xpointb = xpointb -10;
xpointc = xpointc -10;
xpointd = xpointd -10;
leftmagic1 = leftmagic1 -10;
leftmagic2 = leftmagic2 -10;
leftmagic3 = leftmagic3 -10;
rightmagic1 = rightmagic1-10;
rightmagic2 = rightmagic2-10;
rightmagic3 = rightmagic3-10;
}
else if (keyCode===RIGHT_ARROW){
neck1xposition = neck1xposition + 10;
headxposition = headxposition +10;
eyeLxposition = eyeLxposition + 10;
eyeRxposition = eyeRxposition + 10;
hairxposition = hairxposition + 10;
mouthxposition = mouthxposition +10;
shoulderRxposition = shoulderRxposition +10;
shoulderLxposition =shoulderLxposition +10;
upperarmRxposition = upperarmRxposition +10;
upperarmLxposition = upperarmLxposition +10;
forearmRxposition = forearmRxposition +10;
forearmLxposition = forearmLxposition +10;
righthandxposition = righthandxposition +10;
lefthandxposition = lefthandxposition +10;
rightlegxposition = rightlegxposition +10;
leftlegxposition = leftlegxposition +10;
rightfootxposition = rightfootxposition +10;
leftfootxposition = leftfootxposition +10;
xpoint1 = xpoint1 +10;
xpoint2 = xpoint2+10;
xpoint3 = xpoint3 +10;
xpointa = xpointa +10;
xpointb = xpointb +10;
xpointc = xpointc +10;
xpointd = xpointd +10;
leftmagic1 = leftmagic1 +10;
leftmagic2 = leftmagic2 +10;
leftmagic3 = leftmagic3 +10;
rightmagic1 = rightmagic1+10;
rightmagic2 = rightmagic2+10;
rightmagic3 = rightmagic3+10;
}
}
function drawObject(){
shapeX = random(0,700);
shapeY = random(560,700);
frameRate(15);
fill(0, 0, 0);
circle(shapeX, shapeY, 70);
}
function WinningFunction() {
fill(random(re), random(bl), random(gr));
textSize(50);
text ('VIBES ARE IMMACULATE', 20, 160)
}
function LosingFunction() {
textSize (50);
text ('VIBES ARE OFF', 20, 160)
}
function intervalFunction() {
timer += 1;
var v = new Vibe();
vibes.push(v);
if (timer == 30) {
clearInterval(iFunction);}
}
class Vibe {
constructor(){
this.x = random(10, 700);
this.y = (10,30);
this.VibeColor = (random(255), random(255), random(255));
}
draw(){
fill(this.VibeColor);
ellipse(this.x, this.y, 50, 50);
}
move(){
this.y = this.y +5;
}
}