Skip to content
第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の所有関係を変更していない