敵が重ならないようにする方法メモ

以前いただいたコメントを元に構築した
敵が重ならないようにする方法の
防備録を残しておこうと思います。


〜敵の移動AIの構築法〜

0.(前提)
敵の数は、プレイヤーの周りをぴったり囲める数まで
(それ以上多いのは、今回は考慮しない)

1.プレイヤーに近づく

2.十分にプレイヤーに近づいた敵キャラを「セッター」と名づける

3.プレイヤーに近づく際、セッターに衝突したら、
  プレイヤーの周りを公転する
  (時計回りか、半時計周りかは、敵のIDによって決まっている)

4.公転の際に、敵キャラとプレイヤーの間を「伸び縮みする棒(→「レイ」)」を
  用意しておき、それとセッターが衝突しないようになるまで
  公転を続ける。

  レイの伸び縮みには、E3DSetScaleを使う。
  つまり、敵キャラとプレイヤーの中点にレイをE3DSetPosした後、
  E3DSetScaleで単位長さのレイを2キャラの距離にまで伸ばす。


5.レイとセッターの衝突がなくなったら、1.へ戻る。
  

備考: プレイヤーと敵キャラを近づける距離を近づけすぎないことが
    この手法を成功させる秘訣。

    もし、プレイヤーの方からセッターに近づきすぎた場合、
    レイがどの方向からでもセッターに衝突してしまい、
    公転が終了しないという問題点が残されている。。。


==================================

上の記事と関係がないですが、敵が重ならないようにする方法について
いくつか試行錯誤した様子をアップしておきまする。

www.geocities.jp/yonkoushi/tekiwo.lzh