Skip to content
第03回 敵の出現と移動

4 / 4 敵をゲームループへ接続する

このステップの目的

EnemyManagerをゲームの更新と描画へ接続し、プレイヤー弾と敵を同じ画面で確認する

GameからManagerへ依頼する

GameEnemyManagerを所有し、更新と描画を依頼します。 プレイヤー弾の処理はそのまま残し、敵の追加によって既存の弾の構造を変更しません。

Game.cppcpp
void Game::Update(float deltaTime)
{
    player.Update(input, deltaTime);
    playerShots.Update(deltaTime);
    enemies.Update(deltaTime);
}

void Game::Draw() const
{
    enemies.Draw(images);
    player.Draw(images);
    playerShots.Draw(images);
}

この時点では、弾と敵はまだ接触しません。 命中判定は次回、すでにあるPlayerShotEnemyの命中範囲を使って追加します。

動作確認

  1. 一定間隔で敵が出現することを確認する。
  2. 敵が画面上端から下へ進むことを確認する。
  3. 直進する敵と横へ揺れる敵を見分ける。
  4. プレイヤーを動かし、既存の弾がこれまでどおり発射できることを確認する。
チェックリスト
  • Gameが敵の個体を直接操作せず、EnemyManagerへ依頼している
  • 第02回のプレイヤー弾の表示と操作が変わっていない
  • 敵の出現、移動、停止、再利用を確認できる

完成状態を保存したら、第04回の開始プロジェクトと見比べます。 EnemyEnemyManagerGameの変更箇所を確認し、「次回は命中判定を足す」と説明できれば十分です。