Appearance
第04回 プレイヤーの弾と敵の命中判定処理の流れ
3 / 4 撃破と得点を追加する
このステップの目的
敵が撃破された瞬間だけ得点を増やし、命中処理の結果をゲームへ反映する
命中と撃破を分ける
弾が敵へ当たったことと、敵のHPが0になったことは同じとは限りません。 今回は敵のHPが1なので結果は同じですが、TakeDamage()の後にIsActive()を確認する形を保ちます。
Game.cppcpp
enemy.TakeDamage(tuning::playerShot::Damage);
playerShot.Deactivate();
if (!enemy.IsActive())
++score;この順序なら、後で敵のHPを増やしても、最後の一撃でだけ得点を加算できます。
処理順を確認する
1フレームの中で、まず弾と敵の位置を更新します。 その後に命中判定を行い、命中結果を使って得点を更新します。 描画は、判定が終わった現在の状態を表示します。
更新
現在位置を比較
命中判定
命中判定
撃破時だけ加算
得点
得点
現在の状態を表示
描画
チェックリスト
- 敵のHPが0になったときだけ得点が増える
- 命中、無効化、得点の順序を説明できる
- 既存のManagerの所有関係を変更していない