p5.jsのアニメーションは、draw()関数が繰り返し実行されることで実現します。
デフォルトでは1秒間に60回(60FPS)実行されます。
let x = 0; // 変数を宣言(setup()の外側で)
function setup() {
createCanvas(400, 300);
}
function draw() {
background(220);
circle(x, 150, 50); // x座標に変数を使う
x = x + 1; // xを1ずつ増やす(右に移動)
}
if (条件) {
// 条件が真の時に実行される
}
x > 100: xが100より大きいx < 50: xが50より小さいx === 100: xが100と等しい||: または(OR)&&: かつ(AND)// フレームレートの設定(デフォルトは60) frameRate(30); // 1秒間に30フレーム // 現在のフレーム数を取得 let currentFrame = frameCount; // アニメーションを停止 noLoop(); // アニメーションを再開 loop(); // 時間ベースのアニメーション let time = millis(); // プログラム開始からのミリ秒
中心の太陽の周りを回る惑星を作ってみましょう:
let angle = 0;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
// 太陽
fill(255, 200, 0);
circle(200, 200, 60);
// 地球の軌道計算
let earthX = 200 + cos(angle) * 100;
let earthY = 200 + sin(angle) * 100;
// 地球を描く
fill(100, 150, 255);
circle(earthX, earthY, 30);
angle += 0.02;
// チャレンジ: 月を追加してみよう!
// let moonX = earthX + cos(angle * 3) * 30;
// let moonY = earthY + sin(angle * 3) * 30;
}
クリックした位置から広がる花火を作ってみましょう
現在時刻を表示するアナログ時計を作ってみましょう