xxxxxxxxxx
127
let earthX;
let earthY;
let earthR;
let consumeImages = [];
let consume = [];
let trees = [];
let consumeTrees;
let img1, img2, img3, img4;
// let fire;
function preload() {
img1 = loadImage('fries_sml-2.png');
img2 = loadImage('tv_sml-2.png');
img3 = loadImage('iphone_sml-2.png');
img4 = loadImage('starbucks_sml-2.png');
// fireImg2 = loadImage('fire.gif');
//fireImg2 = createImg('fire.gif');
}
function setup() {
createCanvas(windowWidth, windowHeight);
// createCanvas(400, 400);
rectMode(CENTER);
angleMode(DEGREES);
earthX = width / 2;
earthY = height / 2;
earthR = width / 3 * 0.75;
earthRx = earthR;
earthRy = earthR;
earthS = earthR * 3.85;
earthD = earthR * 2;
consumeImages = [img1, img2, img3, img4];
consumeTrees = trees.length + consume.length;
// fire = loadGif('fire.gif');
}
function draw() {
background(255);
drawEarth(earthX, earthY, earthR, earthS);
for (let nt = 0; nt < trees.length; nt++) {
let tree = trees[nt];
trees[nt].display();
}
for (let nc = 0; nc < consume.length; nc++) {
let newConsume = consume[nc];
consume[nc].display();
}
if (trees.length + consume.length < 40) {
textSize(32);
textAlign(CENTER);
if (trees.length + consume.length == 0) {
makeText("plant a tree or consume the earth? left arrow to plant a tree, right arrow to consume");
} else if (trees.length > consume.length) {
makeText("earth is living");
} else if (trees.length < consume.length) {
makeText("earth is dying");
} else {
makeText("it\'s a tie");
}
} else if (trees.length > consume.length) {
makeText("the earth lives on");
numTrees = trees.length - consume.length;
consume.length = [];
// console.log(consume.length);
earthLivesOnTrees(0, 360);
} else {
makeText("the earth has died");
let fireImg2 = createImg('fire.gif');
// let fireImg2 = loadImage('fire.gif');
image(fireImg2, width / 2 - 125, 0);
// fireImg2.play(); // in documentation but doesn't work
}
}
function keyPressed() {
if (trees.length + consume.length < 40) {
if (keyCode === LEFT_ARROW) {
makeTrees(180, 360);
console.log(trees.length);
console.log("left");
} else if (keyCode === RIGHT_ARROW) {
let imgNum = 0;
imgNum = floor(random(0, 4));
consume.push(new Consume(-earthRx, -earthRy, consumeImages[imgNum], random(0, 180)));
console.log(consume.length);
console.log("right");
}
}
}
function makeText(txt) {
text(txt, width / 2, 60 , width, 80);
}
function makeTrees(angleMin, angleMax) {
trees.push(new Trees(40 - earthRx + random(-5, 5), 40 - earthRy + random(-5, 5), 10, 30, 30 - earthRx + random(-5, 5), -earthRy + 40 + random(-5, 5), 40 - earthRx + random(-5, 5), -earthRy - 10 + random(-5, 5), 50 - earthRx + random(-5, 5), -earthRy + 40 + random(-5, 5), random(angleMin, angleMax), "brown", "green"));
}
function earthLivesOnTrees(angleMin, angleMax) {
let madeTreesCount = 1;
if (trees.length < 650) {
for (let mt = 0; mt < 150; mt++) {
makeTrees(angleMin, angleMax);
madeTreesCount++;
}
}
}