xxxxxxxxxx
127
let snow = [];
let gravity;
let zOff = 0;
let textures = [];
let mountains = [];
let trees = [];
function getRandomSnowflake(){
return random(textures);
}
function preload(){
for(let i = 0; i <= 50; i++){
textures.push(getSnowflake());
}
if(windowWidth < 1300){
trees.push(tree(50));
trees.push(tree(-50));
}else if(windowWidth < 1500){
trees.push(tree(50));
trees.push(tree(-50));
trees.push(tree(50));
}else{
trees.push(tree(50));
trees.push(tree(-50));
trees.push(tree(50));
trees.push(tree(-50));
}
}
function setup() {
createCanvas(windowWidth, windowHeight);
gravity = createVector(0,0.3);
for(let i = 0; i < 300; i++){
snow.push(new Snowflake());
}
let mt0 = (generateMountains(375));
let mt1 = generateMountains(250);
let mt2 = generateMountains(100);
mountains.push(saveMountains(mt0,color(56,56,56)));
mountains.push(saveMountains(mt1,color(80,80,80)));
mountains.push(saveMountains(mt2,color(128,128,128)));
}
function draw() {
background(0,0,0);
dayCycle();
let layer1 = [];
let layer2 = [];
let layer3 = [];
for(let flake of snow){
flake.checkEdge();
}
for(let flake of snow){
if(flake.r <= 5){
layer1.push(flake);
} else if(flake.r > 5 && flake.r <= 10){
layer2.push(flake);
}else{
layer3.push(flake)
}
}
image(mountains[0],0,0);
for(let flake of layer1){
let xOff = flake.pos.x / width;
let yOff = flake.pos.y / height;
let wAngle = noise(xOff,yOff,zOff) * TWO_PI
let wind = p5.Vector.fromAngle(wAngle);
wind.mult(0.1);
flake.applyForce(gravity);
flake.applyForce(wind);
flake.update();
flake.draw();
}
image(mountains[1],0,0);
for(let flake of layer2){
let xOff = flake.pos.x / width;
let yOff = flake.pos.y / height;
let wAngle = noise(xOff,yOff,zOff) * TWO_PI
let wind = p5.Vector.fromAngle(wAngle);
wind.mult(0.1);
flake.applyForce(gravity);
flake.applyForce(wind);
flake.update();
flake.draw();
}
image(mountains[2],0,0);
for(let flake of layer3){
let xOff = flake.pos.x / width;
let yOff = flake.pos.y / height;
let wAngle = noise(xOff,yOff,zOff) * TWO_PI
let wind = p5.Vector.fromAngle(wAngle);
wind.mult(0.1);
flake.applyForce(gravity);
flake.applyForce(wind);
flake.update();
flake.draw();
}
for(let t of trees){
image(t,0,0);
}
zOff += 0.05;
// let fps = frameRate();
// fps = floor(fps);
// text(fps,20,20);
}