プロが教えるわが家の防犯対策術!

D言語+SDLでシムシティみたいなシミュレーションゲームを作っているのですが、クリックしたときにマス目にそって物体を配置するような処理はどのようにすればできるのでしょうか。どうしても物体が重なってしまいます。画像は24×24を使っています。

A 回答 (1件)

こんにちは



マウスの座標を取得して、今どのマス目にいるのかを算出してそれに24をかけた所に
画像を表示すればよいのではないでしょうか?

例)■の位置にマウスがあるとすると
□□□□□
□□■□□
□□□□□
□□□□□
□□□□□

マウスの座標(x, y)をそれぞれ24で割ってどのマス目にいるかを出します。
上の図だとマウスはマス目(2,1)にいるので
x = 2 * 24, y = 1 * 24 と計算をして、
x = 48, y = 24 の位置に描画をすればマス目に沿って描画ができると思います。

質問の意味を履き違えていたらスミマセン。

この回答への補足

回答ありがとうございます。マス目に沿って描画できたのですが、たとえば(1,1)の座標をクリックすると、(24,24)の座標に描画されるので、クリックしたときの隣に描画が行われてしまいます。そうなると、(2,2)では、自分が描画したい範囲のマスの隣の隣(3,3)では、自分が描画したい範囲のマス隣の隣の隣...となってしまいます。
私の考えでは、「もしも0から23の範囲だったら」、「もしも24から47の範囲だったら」...というのを最後の座標まで条件分岐を作ればできますが、あまりにもはてしなすぎます。

補足日時:2011/01/16 08:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!