xxxxxxxxxx
90
// Array of flowers.
let flowers = [];
function setup() {
createCanvas(400, 400);
// Generate 20 flowers.
flowerPower();
}
function draw() {
background("lightblue");
updateAndDrawFlowers();
}
function mousePressed() {
// Plant a new flower where the mouse is clicked.
let flower1 = createFlower();
// Update x to be mouseX.
flower1.x = mouseX;
// Update y to be mouseY
flower1.y = mouseY;
flowers.push(flower1);
}
function updateAndDrawFlowers() {
for (let i = 0; i < flowers.length; i += 1) {
let flower = flowers[i];
// Draw the flower.
drawFlower(flower);
// Apply wilting effect by reducing size by 1%
flower.size *= 0.99;
// Reduce lifespan
flower.lifespan -= 1;
if (flower. lifespan <= 0) {
// Remove wilted flower
flowers.splice(i, 1);
// Update index
i--;
}
}
}
// Function to create 20 flowers.
function flowerPower(){
for(let i = 0; i < 20; i+=1){
// Create a flower in a random location.
let flower1 = createFlower();
// Add the flower to the flowers array.
flowers.push(flower1);
}
}
function createFlower() {
let flower = {
x: random(20,380),
y: random(20,380),
size: random(20, 75),
lifespan: random(255,300),
color: color(random(255), random(255), random(255))
};
return flower;
}
function drawFlower(flower) {
noStroke();
fill(flower.color);
// Draw petals.
ellipse(flower.x, flower.y, flower.size / 2, flower.size);
ellipse(flower.x, flower.y, flower.size, flower.size / 2);
// Draw center.
fill(255, 204, 0);
circle(flower.x, flower.y, flower.size / 2);
}