xxxxxxxxxx
272
var r = 0;
var a = 0
var b = 255;
var spinnerX = 500;
var spinnerY = 500;
var linex = 500;
var liney = 500;
var spinnerSpeed = 0;
var spinRadius = 180;
var lineRadius = 1000
var spinAngle = 0;
let bullets = []; //newly added
let song; //newly added
function preload() {
//mixed several sound to make abmient sound
//you can customize your own!!
//song = loadSound('fan.mp3');
song2 = loadSound('earthquick.mp3');
//song3 = loadSound('earthquick.mp3');
song4 = loadSound('storm.mp3');
song5 = loadSound('robot.mp3');
}
function setup() {
//decorate background
backgroundDeco();
//song.loop()
song2.loop()
//song3.loop()
song4.loop()
song5.loop()
}
function mousePressed() {
//program bullet interaction
bullets.push(new BULLET(500, 500, 0, 0, 0, 60));
}
function draw() {
//spinner();
//draw bullets
push();
a=a+0.1
ellipseMode(CENTER)
stroke(a,a,a);
strokeWeight(0.6);
fill(this.c, this.c, this.c);
for (let i = 0; i < bullets.length; i++) {
let thisBullet = bullets[i];
thisBullet.moveMe();
}
pop();
}
function backgroundDeco() {
createCanvas(1000, 1000);
ellipseMode(RADIUS);
background(0);
for (var iii = 0; iii < 95; iii++) {
stroke(255);
strokeWeight(1 - (0.01 * iii));
fill(255 - 2.5 * iii, 255 - 2.5* iii, 255 - 2.5* iii)
ellipse(500, 500, 1000 - (10 * iii), 1000 - (10 * iii))
}
for (var ii = 0; ii < 460; ii++) {
var lineX = linex + lineRadius * cos(ii);
var lineY = liney + lineRadius * sin(ii);
stroke(255, 255, 255, 100)
strokeWeight(0.8)
line(500, 500, lineX, lineY)
}
}
class BULLET {
constructor(x, y, dx, dy, r, c) {
this.x = x;
this.y = y;
this.dx = dx;
this.dy = dy;
this.r = r;
this.c = c;
}
moveMe() {
this.c = this.c + 0.6;
fill(this.c, this.c, this.c);
this.dx = (mouseX - 500) / 200;
this.dy = (mouseY - 500) / 200;
this.x = this.x + this.dx;
this.y = this.y + this.dy;
this.r = this.r + 0.2
ellipse(this.x, this.y, this.r, this.r)
}
}
function spinner() {
fill(0);
ellipse(500, 500, 200, 200)
push();
noStroke();
fill(0);
ellipse(500, 500, 190, 190);
fill(0);
for (var i = 0; i < 18; i++) {
push();
stroke(255);
strokeWeight(0.5);
fill(14 * i)
ellipse(500, 500, 180 - (10 * i), 180 - (10 * i));
pop();
}
//animate spinner
spinnerSpeed = map(mouseX, 0, 1000, 0, 0.5)
r = map(mouseX, 0, 1000, 0, 255);
b = map(mouseY, 0, 1000, 0, 255);
stroke(0);
strokeWeight(1);
noFill();
push(); //1
spinAngle = spinAngle + spinnerSpeed;
var spinX = spinnerX + spinRadius * cos(spinAngle);
var spinY = spinnerY + spinRadius * sin(spinAngle);
push();
//design spinner
push(); //2
strokeWeight(70);
stroke(255)
line(500, 500, spinX, spinY);
strokeWeight(50);
stroke(0)
line(500, 500, spinX, spinY);
pop(); //2
stroke(255);
fill(r, 0, b)
ellipse(spinX, spinY, 70, 70);
fill(100);
ellipse(spinX, spinY, 50, 50);
fill(255)
ellipse(spinX, spinY, 30, 30);
fill(0);
ellipse(spinX, spinY, 20, 20);
pop(); //1
push(); //1
spinX = spinnerX + spinRadius * cos(spinAngle - 90);
spinY = spinnerY + spinRadius * sin(spinAngle - 90);
push(); //2
strokeWeight(70);
stroke(255)
line(500, 500, spinX, spinY);
strokeWeight(50);
stroke(0)
line(500, 500, spinX, spinY);
pop(); //2
fill(r, 0, b)
stroke(255);
ellipse(spinX, spinY, 70, 70);
noStroke();
fill(100);
ellipse(spinX, spinY, 50, 50);
fill(255)
ellipse(spinX, spinY, 30, 30);
fill(0);
ellipse(spinX, spinY, 20, 20);
pop(); //1
push(); //1
spinX = spinnerX + spinRadius * cos(spinAngle + 90);
spinY = spinnerY + spinRadius * sin(spinAngle + 90);
push(); //2
strokeWeight(70);
stroke(255)
line(500, 500, spinX, spinY);
strokeWeight(50);
stroke(0)
line(500, 500, spinX, spinY);
pop(); //2
stroke(255)
fill(r, 0, b)
ellipse(spinX, spinY, 70, 70);
fill(100);
ellipse(spinX, spinY, 50, 50);
fill(255)
ellipse(spinX, spinY, 30, 30);
fill(0);
ellipse(spinX, spinY, 20, 20);
fill(0);
stroke(255);
ellipse(spinnerX, spinnerY, 60, 60);
pop(); //1
for (var ii = 0; ii < 10; ii++) {
stroke(0);
strokeWeight(1);
fill(r - (25 * ii), 0, b - (25 * ii))
ellipse(500, 500, 40 - 4 * ii, 40 - 4 * ii);
}
}