xxxxxxxxxx
//Spark effects credited to: Electric Sparks by Krishanth2020
var angle = 0;
var song;
let particles = [];
let mySound;
let lightSwitch = false;
function preload() {
soundFormats('mp3');
mySound = loadSound("grindsound2");
}
function setup() {
createCanvas(400, 400);
background(200);
strokeWeight(8);
angleMode(DEGREES);
circlePos1 = createVector(75, 125);
circlePos2 = createVector(325, 125);
circlePos3 = createVector(200, 325);
}
function draw() {
background(151, 193, 201);
noStroke()
fill(123, 150, 173)
ellipse(200,200,400)
push();
stroke(235, 64, 52)
translate(75, 125);
rotate(angle);
rectMode(CENTER);
rect(0,0,60,30);
angle +=50
pop();
push();
stroke(252, 255, 59);
translate(325, 125);
rotate(angle);
rectMode(CENTER);
rect(0,0,60,30);
pop();
push();
stroke(4, 222, 56);
translate(200, 325);
rotate(angle);
rectMode(CENTER);
rect(0,0,60,30);
pop();
push();
stroke(61, 93, 255);
translate(mouseX, mouseY);
rotate(angle);
rectMode(CENTER);
rect(0,0,60,30);
pop();
push()
stroke(0);
strokeWeight(8)
fill(225)
ellipse(mouseX, mouseY, 33, 33);
ellipse(75,125,33,33)
ellipse(325,125,33,33)
ellipse(200,325,33,33)
mousePos = createVector(mouseX, mouseY);
for (let i = 0; i < 3; i++) {
particles.push(new Particle(mouseX, mouseY));
}
for (let particle of particles) {
let gravity = createVector(0, 0.2);
particle.applyForce(gravity);
particle.update();
if (mousePos.dist(circlePos1) < 50 || mousePos.dist(circlePos2) < 50 || mousePos.dist(circlePos3) < 50) {
particle.show();
}
}
if ((mousePos.dist(circlePos1) < 50 || mousePos.dist(circlePos2) < 50 || mousePos.dist(circlePos3) < 50) && lightSwitch == false) {
mySound.play();
lightSwitch = true;
}
if (mousePos.dist(circlePos1) > 50 && mousePos.dist(circlePos2) > 50 && mousePos.dist(circlePos3) > 50) {
mySound.stop();
lightSwitch = false;
}
for (let i = particles.length - 1; i >= 0; i--) {
if (particles[i].finished()) {
particles.splice(i, 1);
}
}
pop()
}