xxxxxxxxxx
140
var mouseTimer = 60;
var x = 0;
var y = 0;
var rawTrees = [];
var trees = [];
var treeLen = 0;
var treeNum = 30;
var lightMovement = [5, 0, 0];
var ground;
var light;
var snowSystem;
var fireSystem;
function setup() {
createCanvas(windowWidth, windowHeight);
angleMode(DEGREES);
var treeDist = width/treeNum;
var treeSizes = [];
for(let i = 0; i < treeNum; i++) {
var x = random(-10, 10);
var y = random(height-90, height);
rawTrees.push(new Tree(i*treeDist+treeDist/2+x, y, random(-5, 5), random(-0.01, 0.01), 300-(height-y)*2, (height-y)));
treeSizes.push(300-(height-y)*2);
}
var treeArr = treeSizes.sort();
for(let j = 0; j < treeNum; j++) {
for(let i = 0; i < treeNum; i++) {
if(i != j && rawTrees[i].size == treeArr[j]) {
trees.push(rawTrees[i]);
}
}
}
treeLen = trees.length;
ground = loadTexture('ground');
light = loadTexture('light');
snowSystem = new Snow(0.03);
textFont('times');
}
function draw() {
background(210, 220, 240);
translate(x, y);
for(let i = 0; i < 4; i++) {
image(ground, i*(width/4), height-ground.height);
image(ground, i*(width/4), height-ground.height*2);
}
for(let i = 0; i < treeLen; i++) {
trees[i].display();
trees[i].update();
}
fill(255);
noStroke();
snowSystem.draw();
if(lightMovement[1]) {
if(lightMovement[2] < 0.05) {
lightMovement[2] += 0.0005;
}
else {
lightMovement[2] = 0.05;
lightMovement[1] = 0;
}
}
else {
if(lightMovement[2] > -0.05) {
lightMovement[2] -= 0.0005;
}
else {
lightMovement[2] = -0.05;
lightMovement[1] = 1;
}
}
lightMovement[0] += lightMovement[2];
for(let i = 0; i < 3; i++) {
push();
translate(width, 0);
rotate(-180-(i+1)*25+lightMovement[0]*(i+0.1));
image(light, 0, 0);
pop();
}
textAlign(CENTER, CENTER);
textSize(80);
if(month() === 12 && day() === 25) {
text("Merry Christmas!", width/2, height/2-100);
}
else {
text("Almost Christmas!", width/2, height/2-100);
}
stroke(255);
strokeWeight(2.5);
line(width/2-250, height/2-40, width/2+250, height/2-40);
noStroke();
textSize(40);
text(getMonth() + ' ' + day() + ', ' + year(), width/2, height/2);
if(mouseX === pmouseX && mouseY === pmouseY) {
if(mouseTimer > 0) {
mouseTimer -= 1;
}
else {
cursor("NONE");
}
}
else {
mouseTimer = 60;
cursor("");
}
}
function getMonth() {
var m = month();
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
return months[m-1];
}