PEN(xDNCL)を使ったランダムアニメーションの作成方法【初心者向け】

プログラミング

PEN(xDNCL)を使用して、配列と乱数を活用したアニメーションを作成する方法について解説します。今回は、ランダムに動く円を追いかけるアニメーションの例を使って、基本的なアニメーション作成の手順を説明します。

1. PEN(xDNCL)とは

PEN(xDNCL)は、JavaScriptを使ったシンプルで強力なアニメーションライブラリです。特に、数値計算やランダム生成を簡単に行えるため、視覚的に面白いアニメーションを作るのに非常に便利です。

まずは、PEN(xDNCL)を使う準備として、ライブラリの読み込みと基本的な設定を行います。インターネットから公式のCDNを利用して、HTMLファイルにスクリプトを追加しましょう。

2. ランダムな動きを作る基本的な構造

ランダムに動く円を作るために、PEN(xDNCL)で簡単なアニメーションを作成します。以下のコードは、ランダムな位置に円を動かし、その円をアニメーションで追いかけるものです。

let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

let circles = [];

// ランダムな円の生成
for (let i = 0; i < 10; i++) {
  circles.push({
    x: Math.random() * canvas.width,
    y: Math.random() * canvas.height,
    radius: 20,
    dx: Math.random() * 2 - 1,
    dy: Math.random() * 2 - 1
  });
}

function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // 各円を描画してランダムに動かす
  circles.forEach(circle => {
    circle.x += circle.dx;
    circle.y += circle.dy;
    if (circle.x > canvas.width || circle.x < 0) circle.dx *= -1;
    if (circle.y > canvas.height || circle.y < 0) circle.dy *= -1;

    ctx.beginPath();
    ctx.arc(circle.x, circle.y, circle.radius, 0, Math.PI * 2);
    ctx.fillStyle = 'blue';
    ctx.fill();
  });

  requestAnimationFrame(animate);
}

animate();

このコードでは、10個のランダムな円を生成し、それらが画面上をランダムに動くアニメーションを作成しています。これをベースに、さらに複雑なアニメーションを作成することができます。

3. 追いかける円を作る

次に、これらのランダムに動く円を追いかける円を作成します。以下のコードは、中心に固定した円が、ランダムに動く円を追いかけるように動くアニメーションを作成します。

let target = { x: canvas.width / 2, y: canvas.height / 2, radius: 15 }; // 追いかける円

function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // 追いかける円を描画
  ctx.beginPath();
  ctx.arc(target.x, target.y, target.radius, 0, Math.PI * 2);
  ctx.fillStyle = 'red';
  ctx.fill();

  // ランダムな円を描画して追いかける
  circles.forEach(circle => {
    let angle = Math.atan2(circle.y - target.y, circle.x - target.x);
    target.x += Math.cos(angle) * 0.5;
    target.y += Math.sin(angle) * 0.5;

    ctx.beginPath();
    ctx.arc(circle.x, circle.y, circle.radius, 0, Math.PI * 2);
    ctx.fillStyle = 'blue';
    ctx.fill();
  });

  requestAnimationFrame(animate);
}

animate();

このコードでは、赤い円がランダムに動く青い円を追いかけるように動きます。`Math.atan2`を使って角度を計算し、ターゲット円を追跡します。

4. まとめと応用

今回紹介したコードを使うことで、PEN(xDNCL)を活用したアニメーション作成の基本を学ぶことができました。ランダムに動く円を追いかけるアニメーションは、他のアニメーションに応用できます。例えば、インタラクティブなアニメーションや、UI要素のアニメーションに活用することもできます。

さらに、アニメーションの速度やランダム性を調整することで、さまざまな表現が可能になります。ぜひ、自分のアイデアを元に、自由にカスタマイズしてみてください。

コメント

タイトルとURLをコピーしました