タワーディフェンスで近くの敵に攻撃する仕組みを考える。

タワーディフェンスのゲームを勉強中のcacaponです。

今回は勉強のメモがてらタワーディフェンスでおいたオブジェクトがてきにの攻撃の仕組みについてまとめておこうと思います。

コリジョンで索敵範囲を作る

  • ゲームエンジンならコリジョンはあると思う。
    • 少なくともUnityとGobotにはあった
  • コリジョンを索敵範囲として追加して、範囲内に入ったオブジェクトを検知できるようにする。
    • ただしコリジョンのマスクを使うこと。敵だけ検知して、弾や壁や味方を検知させない。
  • 自然に作るなら円形のコリジョンが良いと思う

索敵範囲内に敵が入ったらオブジェクトをそちらに向ける

  • 索敵範囲内に敵が入ったタイミングで相手のオブジェクトを取得する
  • 相手のオブジェクトの位置と自分の位置が分かれば角度が求められるはず
  • その角度を基に方向を決定する。

直進する弾を生成する

  • 方向が決まったらその方向に直進する弾をインスタンス化する。
  • 何かに当たったら消滅する
    • 当たったオブジェクトが敵だったらダメージを与える
    • インスタンス内にダメージ量を持っておく
  • 時間経過したら消滅する(残り続けてメモリを浪費させないため)

課題

  • 範囲内に複数オブジェクトがある場合はどうする?