• 締切済み

D言語+SDLでシミュレーションゲームを作りたい

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

みんなの回答

  • cotae_bb
  • ベストアンサー率53% (51/95)
回答No.1

こんにちは マウスの座標を取得して、今どのマス目にいるのかを算出してそれに24をかけた所に 画像を表示すればよいのではないでしょうか? 例)■の位置にマウスがあるとすると □□□□□ □□■□□ □□□□□ □□□□□ □□□□□ マウスの座標(x, y)をそれぞれ24で割ってどのマス目にいるかを出します。 上の図だとマウスはマス目(2,1)にいるので x = 2 * 24, y = 1 * 24 と計算をして、 x = 48, y = 24 の位置に描画をすればマス目に沿って描画ができると思います。 質問の意味を履き違えていたらスミマセン。

bomura
質問者

補足

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

関連するQ&A