初めまして。初めて掲示板を利用するので不備があったら言ってください。
Dxライブラリでプレイヤーを追いかけるゲームを作っています。
マップチップを使って敵とプレイヤーの座標を比較して移動しています。
追跡する敵の移動方向を上下と左右のみにしたいです
いろいろと調べたのですが斜め移動のやり方しか見つけられませんでした。
マップチップ上で追跡する敵を4方向移動にしたい
Re: マップチップ上で追跡する敵を4方向移動にしたい
> いろいろと調べたのですが …… 見つけられませんでした。
よく目にする文言だけど,何をどう調べたのかは絶対に明かされない不思議!
Xが左右方向でYが上下方向なのだとして,
(1) Y座標を固定してX座標だけを動かせば「左右のみ」になる.
(2) X座標を固定してY座標だけを動かせば「上下のみ」になる.
(3) X座標とY座標とを同時に変更すると「斜め」に移動することになる.
という3点は明らかであると思うのだが,どうだろうか.
「明らかでない」というならば,自分はちょっともうこれ以上簡単に説明できないです.
「明らかである」ならば,上下左右のみに限定したいなら(3)が起きないようにすればよいだけ.
すなわち,X座標を動かしたならばY座標は動かさない.Y座標を動かしたならばX座標を動かさない.
(提示されたコードでは単に独立したifが4個ならんでいるけど,座標を変更する条件は互いに独立ではないということだ.)
よく目にする文言だけど,何をどう調べたのかは絶対に明かされない不思議!
Xが左右方向でYが上下方向なのだとして,
(1) Y座標を固定してX座標だけを動かせば「左右のみ」になる.
(2) X座標を固定してY座標だけを動かせば「上下のみ」になる.
(3) X座標とY座標とを同時に変更すると「斜め」に移動することになる.
という3点は明らかであると思うのだが,どうだろうか.
「明らかでない」というならば,自分はちょっともうこれ以上簡単に説明できないです.
「明らかである」ならば,上下左右のみに限定したいなら(3)が起きないようにすればよいだけ.
すなわち,X座標を動かしたならばY座標は動かさない.Y座標を動かしたならばX座標を動かさない.
(提示されたコードでは単に独立したifが4個ならんでいるけど,座標を変更する条件は互いに独立ではないということだ.)
Re: マップチップ上で追跡する敵を4方向移動にしたい
オフトピック
それはそれとして,「マップチップ云々…」という言葉から勝手に想像するに,
実際にゲームを作るとなると,ルール的に「敵が侵入できないマス」とかが設けられることが予想されるので,
(1) 敵の移動先候補を列挙する
単純な例で言えば,今の座標の上下左右の4カ所のうち,侵入できる箇所であって且つ追跡対象との距離が近くなる箇所
(2) 列挙された中から実際の移動先を選ぶ
みたいな手続きにしておくと良いのかもしれない.
実際にゲームを作るとなると,ルール的に「敵が侵入できないマス」とかが設けられることが予想されるので,
(1) 敵の移動先候補を列挙する
単純な例で言えば,今の座標の上下左右の4カ所のうち,侵入できる箇所であって且つ追跡対象との距離が近くなる箇所
(2) 列挙された中から実際の移動先を選ぶ
みたいな手続きにしておくと良いのかもしれない.