久しぶりの更新です。やっていなかったわけではなく、何度も仕様を変更していたので更新できませんでした。まずマス目をやめました。ユニットが重なってしまうのを何とかするためにマス目を導入したわけですが、横か縦にしか動けないのが嫌だったのと、マス目なしでもユニットが重ならないように出来る方法を思いついたので。
ユニットに隊列を組ませるようにしました。これによって各ユニット同士に間隔ができて重なりにくくなります。10体で1つのチームを組んでます。0、10、20・・・を隊長として、その間の番号が隊員となります。敵がある程度離れているときには隊列を組み、組み終わったら敵の方へ移動します。隊列を組んでいる途中に敵が近づいてきたら組むのをやめて迎撃します。
隊列を組むことによってある程度は重なりにくくなりましたが、戦闘が続くとだんだん重なってきてしまいます。攻撃範囲に差をつけたり、攻撃喰らったユニットが吹き飛ぶようにするなど、戦闘中にも工夫する必要がありそうです。自分の想像するものはリアルタイムストラテジーに近いのでちょっと研究してみます。エイジオブエンパイアではおうぎ型に広がって相手を囲む動きをしてたと思います。
hgimg3にしてからなんですが、ターゲットを2秒に1回探すやり方だと2秒に1回ガクっと重くなるようになってしまいました。。今まで何でそうならなかったのか不思議なんですが。とはいえ毎フレームチェックすると重すぎるので、上に書いたチームというのを利用して処理を軽減しました。隊長のみ全ユニットとの距離を判定してターゲットを選びます。隊員は自分のチームの隊長のターゲット・・・が所属しているチームからターゲットを選びます。説明しにくい・・・。これによってかなり軽くなりましたが、まだまだ重いので改善していきます。
今日のまとめ&今後の課題
- 隊列を組めるようになった
- 近接攻撃と遠距離攻撃タイプの両方を作って動かしてみる。
何度も書き直すことになるのでコード数はしばらく数えません。