敵が重ならないようにする方法メモ
以前いただいたコメントを元に構築した
敵が重ならないようにする方法の
防備録を残しておこうと思います。
〜敵の移動AIの構築法〜
0.(前提)
敵の数は、プレイヤーの周りをぴったり囲める数まで
(それ以上多いのは、今回は考慮しない)
1.プレイヤーに近づく
2.十分にプレイヤーに近づいた敵キャラを「セッター」と名づける
3.プレイヤーに近づく際、セッターに衝突したら、
プレイヤーの周りを公転する
(時計回りか、半時計周りかは、敵のIDによって決まっている)
4.公転の際に、敵キャラとプレイヤーの間を「伸び縮みする棒(→「レイ」)」を
用意しておき、それとセッターが衝突しないようになるまで
公転を続ける。
レイの伸び縮みには、E3DSetScaleを使う。
つまり、敵キャラとプレイヤーの中点にレイをE3DSetPosした後、
E3DSetScaleで単位長さのレイを2キャラの距離にまで伸ばす。
5.レイとセッターの衝突がなくなったら、1.へ戻る。
備考: プレイヤーと敵キャラを近づける距離を近づけすぎないことが
この手法を成功させる秘訣。
もし、プレイヤーの方からセッターに近づきすぎた場合、
レイがどの方向からでもセッターに衝突してしまい、
公転が終了しないという問題点が残されている。。。
==================================
上の記事と関係がないですが、敵が重ならないようにする方法について
いくつか試行錯誤した様子をアップしておきまする。