敵がプレイヤーを追ってくるようなプログラムは
どのように書けばよいでしょうか?
画面はボンバーマン風のゲームです
敵が追ってくるプログラム
Re:敵が追ってくるプログラム
プレイヤーの位置と敵の位置との差分を取ればいいと思います。
(敵の位置)+(プレイヤーと敵との位置の差分)=(プレイヤーの位置)
なので、プレイヤーを追うことになります。
(敵の位置)+(プレイヤーと敵との位置の差分)=(プレイヤーの位置)
なので、プレイヤーを追うことになります。
Re:敵が追ってくるプログラム
ボンバーマン風ということは、マップがマスで区切られているのでしょうか?
それでかつ障害物があるということですよね?
私は詳しくは知らないのですが、
そういう場合はA*(エースター)アルゴリズムを使用すると良いと思います。
それでかつ障害物があるということですよね?
私は詳しくは知らないのですが、
そういう場合はA*(エースター)アルゴリズムを使用すると良いと思います。
Re:敵が追ってくるプログラム
ボンバーマン風で、ただプレイヤーを追うだけなら、MNSさんも書かれている通り
A*などの経路探索を行ってプレイヤーを追うのが一番綺麗かと思います。
ただし、ゲームがボンバーマンのように壁を破壊して進むことができるのなら、
破壊しないで進めるルートより、破壊できる壁を壊して進んだ方が早いこともあるので、
破壊できる壁の移動コスト値を適切に調整して、破壊してからプレイヤーの方に
向かうようにする必要があるかもしれません。
でも、そんな鬼のように追っ掛けてくる敵は遊ぶ方も大変なので、
単純にプレイヤーの方に向かってその場その場で壁を適度に避けたり破壊したりしつつ
進むようなものでも十分かもしれませんね。
A*などの経路探索を行ってプレイヤーを追うのが一番綺麗かと思います。
ただし、ゲームがボンバーマンのように壁を破壊して進むことができるのなら、
破壊しないで進めるルートより、破壊できる壁を壊して進んだ方が早いこともあるので、
破壊できる壁の移動コスト値を適切に調整して、破壊してからプレイヤーの方に
向かうようにする必要があるかもしれません。
でも、そんな鬼のように追っ掛けてくる敵は遊ぶ方も大変なので、
単純にプレイヤーの方に向かってその場その場で壁を適度に避けたり破壊したりしつつ
進むようなものでも十分かもしれませんね。