![](https://blogimg.goo.ne.jp/user_image/08/b0/cf7d36ee1ba5eaac80ec2d5f19e9ab7e.png)
HEROの行動部分、まだ攻撃などは未実装だけど移動だけはうまく行くようになったので関数化して全方向対応に改造した。引数としてXYそれぞれ±1を取るように
![](https://blogimg.goo.ne.jp/user_image/08/b3/cbfea2b65d73a7381a366ee40df8d6d7.png)
![](https://blogimg.goo.ne.jp/user_image/42/71/e6e63bca9f5653e98ecee05e1f803dcb.png)
適用するとこんな感じでかなりスッキリ(個人の感想です)。
![](https://blogimg.goo.ne.jp/user_image/16/a7/25d8442e0ebe56e0cf431bc5eebdef58.png)
いよいよENEMYの自動行動に挑戦していくか・・苦労の跡が偲ばれるコードですが、試行錯誤の結果・・完全自動行動は出来そうだけど、後回し・・という結論に(後で困りそうかなぁ)
通常のように(cond ((key=? ... という部分を書くと、どうしても人間のキー入力が必要になる。実はその文法?は不要らしいんだけど、その場合(上のコード)、いわゆる「hit any key」というヤツで何かキーを押すとワンアクション(関数1回転)させることが出来る、という感じ。事前にこれを知ってれば、HEROのキー入力の条件に入れて自動行動も可能だったかな・・とは思うんだけど、そういうデザインにしてなかったので・・ここはドラクエで言うところのメッセージスピード最遅だけどボタン連打で最速って時のごとく、敵の行動を進めるのにはテキトーにキーを連打という仕組みでとりあえずは行く・・としておこう。
![](https://blogimg.goo.ne.jp/user_image/18/fb/baad3fd3d7461a1441f0dd31d43bd66b.png)
![](https://blogimg.goo.ne.jp/user_image/5f/15/1d35fde01cd26e4258894b885e9f521f.png)
で、敵の行動(移動のみ)部分。HEROで任意でやっていた移動をHEROの位置を調べて接近してくるというパターン。HEROが同じYにいたら更に判定でXの強弱を判定、弱かったらXにプラス、強かったらマイナス。Yが違ってれば同じようにYの強弱を調べて移動・・と
![](https://blogimg.goo.ne.jp/user_image/07/e5/7f83c4c0abba8a276a9b4c5514d881e6.png)
結果、HEROをひたすら追っかけてくる(半)自動行動は出来るようになったのであった。
ということで、次回はいよいよ敵勢力に隣接した場合に戦闘発生ということで。
隣接時にメニューを出して戦闘をするかだけど・・まあ、そこはちょっとアクションRPG的に隣接した後、更に敵座標へ移動する行動で近接攻撃を行うようにするか・・(PoRはそうだったので)。メニューからの行動選択も出来るようにしないといけないな〜