xxxxxxxxxx
56
// ボールをたくさん作るので配列で宣言する
var balls = [];
// 初速度
var v0 = 0.3;
function setup() {
createCanvas(400, 400);
// ボールの個数を100個にして、ballsの配列に連想配列を初期化して追加する
for (let i = 0; i < 100; i++) {
balls[i] = {
x: width / 2,
y: height / 2,
v: {
x: random(-v0, v0),
y: random(-v0, v0),
},
life: random(255),
};
}
// 色が重なっているときの振る舞いを加算モードにする
// 詳細:https://p5js.org/reference/#/p5/blendMode
blendMode(ADD);
}
function draw() {
// 画面の描画をすべてなくす
clear();
// 背景色の描画
background(0);
// ボールの個数分の描画処理
for (const ball of balls) {
ball.x += ball.v.x;
ball.y += ball.v.y;
ball.life--;
// 寿命が付きたら最初に戻る
if (ball.life < 0) {
ball.x = width / 2;
ball.y = height / 2;
ball.v.x = random(-v0, v0);
ball.v.y = random(-v0, v0),
ball.life = random(255);
}
noStroke();
fill(255, 150, 50, ball.life / 10);
circle(ball.x, ball.y, 100);
}
}