1
0
mirror of https://github.com/byReqz/bubble-bg.git synced 2024-11-23 14:54:54 +00:00
bubble-bg/js/index.js

83 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-08-13 00:29:26 +00:00
var w = window.innerWidth;
var h = window.innerHeight;
var bubbleArray = [];
var c1,c2;
function Bubble(xloc, yloc, zloc, rise, rad) {
this.xloc = xloc;
this.yloc = yloc;
this.zloc = zloc;
this.rad = rad;
this.rise = rise;
}
function CreateBubbles(howManyBubbles) {
var count = howManyBubbles;
for (i = 0; i < count; i++) {
var x = random(0, w);
var y = random(0, h);
var z = random(0.3, 0.7);
var r = map(z, 0.3, 0.7, 7, 25);
var rise = map(z, 0.3, 0.7, 0.7, 1.7);
var b = new Bubble(x, y, z, rise, r);
bubbleArray.push(b);
}
}
function Show() {
for (i = 0; i < bubbleArray.length; i++) {
var x = bubbleArray[i].xloc;
var y = bubbleArray[i].yloc;
var z = bubbleArray[i].zloc;
var r = bubbleArray[i].rad;
fill(255, 255, 255, z);
ellipse(x, y, r, r);
}
}
function Rise() {
for (i = 0; i < bubbleArray.length; i++) {
var x = bubbleArray[i].rise;
bubbleArray[i].yloc -= x;
var zmin = bubbleArray[i].zloc * -1.5;
var zmax = bubbleArray[i].zloc * 1.5;
var slowy = bubbleArray[i].yloc * .08;
bubbleArray[i].xloc += map(cos(slowy), -1,1,zmin,zmax)
}
}
function Edges() {
for (i = 0; i < bubbleArray.length; i++) {
if (bubbleArray[i].yloc < -10) {
bubbleArray[i].yloc = h + 20;
bubbleArray[i].xloc = random(0,w);
}
}
}
function setGradient(x,y,w,h,c1,c2) {
noFill();
for (var i = y; i <= y+h; i++) {
var inter = map(i, y, y+h, 0, 1);
var c = lerpColor(c1, c2, inter-0.35);
stroke(c);
line(x, i, x+w, i);
}
}
function setup() {
createCanvas(w, h);
noStroke();
CreateBubbles(200);
}
function draw() {
c1 = color(60, 195, 120, 1);
c2 = color(0, 100, 130, .2);
colorMode(RGB, 255, 255, 255, 1);
setGradient(0,0,w,h,c1,c2);
Show();
Rise();
Edges();
}