Appearance
第03回 音ゲーム2
2 / 4 レーンへノーツを生成する
このステップの目的
譜面の時刻に合わせて、ノーツを画面へ出現させる
生成時刻を逆算する
ノーツは判定時刻に突然表示するのではなく、移動時間を逆算して生成します。
csharp
double spawnTime = note.hitTime - travelTime;
if (!note.spawned && songTime >= spawnTime)
Spawn(note);生成済みフラグを持たせ、同じ譜面行から何度もノーツを作らないようにします。
レーンと座標を分ける
譜面はレーン番号を持ち、画面上の座標はレーン配置側が決めます。レーン数や画面幅を変えても譜面データを直接修正しない構造にします。
チェックリスト
- 判定時刻から生成時刻を求めている
- 1つの譜面行からノーツを1回だけ生成している
- レーン番号と画面座標を分けている