• ベストアンサー

XNAでのゲーム制作で困っています

2Dゲームの衝突判定なのですが、 キャラクターサイズの半分がめり込んだ形になってしまいます。 原因は基準座標点の取る位置です。 キャラクターは中心で、マップチップは左上になっており、今いる座標をマップサイズで割ったとしてもずれが生じるみたいです。 キャラクターが中心なのは、敵との衝突判定をやりやすくするためです。 補正をかけたとしても直りそうにないのですが、何かアイディアはありませんか? マップ描画の基準座標が中心になるように設定できればいいのか、 若しくは別の方法があればご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

その方法だと、キャラクターの判定領域は、中心座標の1点のみ、ということになりますよね。 左に移動するなら、キャラクターの左端の座標で 右に移動するなら、キャラクターの右端の座標で 判定する必要があるわけです。 これをより、一般的にしたものが「判定領域」という一定の面積を持ったもので、領域が重なっているかどうかで判定する方法です。

criminal1006
質問者

補足

では、マップチップの基準座標をを中心にする方法はないのですか?

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

具体的にどんな判定をしているのですか? マップチップの当たり判定領域と、キャラクターの当たり判定領域が重なったら という判定をしているなら、基準座標は関係無いはずです。左上から+15,+15の範囲でも、右下から-15,-15の範囲でも、同じ領域になります。

criminal1006
質問者

補足

今いるキャラクターの座標をマップサイズで割り、 配列番号を参照して通れるか否かを判断しています。 で、通れるなら移動量を座標に足すといった処理になっています。

関連するQ&A