アクションゲームの当たり判定について
Posted: 2011年3月02日(水) 07:28
初めまして
最近アクションゲームにも手を出してみようと思い少しずつ作っていたのですが
マップとキャラの当たり判定がうまくいきません。
自分は二次元配列にデータを格納し、
自機の座標をマップチップの大きさで割ることでどの配列を参照すればいいかを求め、
四隅(左の当たり判定を知りたいときは左上、左下を調べる)がマップのオブジェクトとぶつかっているかどうかを知り、
もしぶつかっているならぶつからない位置まで戻すという手法をとっています。
しかしこの方法ですと衝突したとき、例えば落下中に左下の点がどこかに衝突したとき
「左に衝突した」という条件と「下に衝突した」という条件両方が成立するためキャラは右と上に動かされてしまいます。
本当ならブロックの上に乗るわけですから右には動かなくて良いんですけど・・・
どうすればいいんでしょうか?
本当はそのぶぶんのソースも貼ろうかと思ったんですが自分はVBで作っているのでここは少しちがうかなあと思いまして・・・
(でも理論自体は同じだから質問してもいいかなあと)
最近アクションゲームにも手を出してみようと思い少しずつ作っていたのですが
マップとキャラの当たり判定がうまくいきません。
自分は二次元配列にデータを格納し、
自機の座標をマップチップの大きさで割ることでどの配列を参照すればいいかを求め、
四隅(左の当たり判定を知りたいときは左上、左下を調べる)がマップのオブジェクトとぶつかっているかどうかを知り、
もしぶつかっているならぶつからない位置まで戻すという手法をとっています。
しかしこの方法ですと衝突したとき、例えば落下中に左下の点がどこかに衝突したとき
「左に衝突した」という条件と「下に衝突した」という条件両方が成立するためキャラは右と上に動かされてしまいます。
本当ならブロックの上に乗るわけですから右には動かなくて良いんですけど・・・
どうすればいいんでしょうか?
本当はそのぶぶんのソースも貼ろうかと思ったんですが自分はVBで作っているのでここは少しちがうかなあと思いまして・・・
(でも理論自体は同じだから質問してもいいかなあと)