Skip to content
第03回 音ゲーム2

2 / 4 レーンへノーツを生成する

このステップの目的

譜面の時刻に合わせて、ノーツを画面へ出現させる

生成時刻を逆算する

ノーツは判定時刻に突然表示するのではなく、移動時間を逆算して生成します。

csharp
double spawnTime = note.hitTime - travelTime;
if (!note.spawned && songTime >= spawnTime)
    Spawn(note);

生成済みフラグを持たせ、同じ譜面行から何度もノーツを作らないようにします。

レーンと座標を分ける

譜面はレーン番号を持ち、画面上の座標はレーン配置側が決めます。レーン数や画面幅を変えても譜面データを直接修正しない構造にします。

チェックリスト
  • 判定時刻から生成時刻を求めている
  • 1つの譜面行からノーツを1回だけ生成している
  • レーン番号と画面座標を分けている