Appearance
第02回 音ゲーム1
2 / 4 入力と判定時刻を比較する
このステップの目的
入力時刻とノーツの判定時刻との差から、判定ランクを決める
判定幅を定数にする
csharp
double delta = inputTime - note.hitTime;
double error = Math.Abs(delta);
Judgement result = error <= perfectWindow ? Judgement.Perfect
: error <= goodWindow ? Judgement.Good
: error <= missWindow ? Judgement.Bad
: Judgement.Miss;判定幅はコードの各所へ散らさず、ゲーム調整値としてまとめます。値を変えた比較ができることが重要です。
一番近いノーツを選ぶ
同じレーンに複数のノーツがある場合は、判定時刻が最も近い未処理ノーツだけを候補にします。
チェックリスト
- 入力時刻と判定時刻の差を求めている
- Perfect、Good、Missの幅を調整値にしている
- 同じノーツを二度判定していない