http://dixq.net/forum/viewtopic.php?f=3 ... 90#p117090 の続きです
まず最初に理解力がなくて本当にすいません。
以前質問させてもらった時に、表示座標とッマップ座標というのが出てきて、
理解できたような気になってしまって、解決とさせていただいたんですけど、
いざプログラムに書き込もうとしたら、どうすればいいかわからくなってしまったので、
再び質問させていただきました。
非常に申し訳ないのですが、どなたか解説お願いします。
表示座標とマップ座標
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 表示座標とマップ座標
オレンジがマップ座標で、表示座標が紫です。
マップ座標はマップ左上からのドット相対座標で、表示座標は表示している領域の左上からのドット相対座標となります。
Playerしか書きませんが、Enemyも同様に計算されます。
int player_viewx = player.mapx - map.scrx;
int player_viewy = player.mapy - map.scry;
このplayer_viewxとplayer_viewyでDrawGraphします。
この時Draw関数内でしかmap.scrxやmap.scryを使った計算をしないようにすることで表示座標を扱う部分が極小化するためバグを発生しづらくなります。デバッグも容易です。
それ以外の当たり判定や移動では、player.mapx とplayer.mapy しか使いません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。