素人プログラマーの日常

効率の良いコード、美しいコードなんて書けません。

クォータービューワ

ゲームの表現方法としてよく使われるクォータービュー。主にシミュレーション系の動きの少ないものに多く見られます。アクションでクォータービューだと、キャラクターの動きや当たり判定などの計算がめんどーなのと、擬似的な立体なので距離感が掴みにくいということもあるからかもしれません。そんなクォータービューのゲームを製作するにあたって、そのマッピングの助力として活躍してくれそうなビューワを作ります。前回限定的な場面と書いたのはこういうことです。

ビューワが無いと、例えば地形を表現するときにプログラムでは

1,3,5,4,4,3,2,3
1,1,2,2,4,3,2,3
2,2,4,2,1,3,5,5
0,2,2,2,1,1,4,5



こういった数字の羅列になり、これではあまりにもイメージしにくいものになります。初期のドラクエのような、思いっ切り2次元のマッピングなら数字の羅列でもある程度イメージ出来ます。しかし、そこに高さのパラメータを加えると、実際に見てみないことには、どれくらいの違いがあるのか判断し兼ねるところです。そこで、実際に地形データを編集しながら描画して確認出来るビューワの登場です。


また少しずつではありますが、既に作り始めています。とりあえず肝である描画部分だけコードを載せておきます。

dspX , dspY :マップ上の ( 0 , 0 )の描画位置
xx :マップ上で x+1 したときの x軸方向へのピクセルのズレ(う~ん、わかりづらい…)
他 xy , yy , yx も同様。
land[x][y][0] :地形の種類
land[x][y][1] :地形の高さ


for( int x=0 ; x<10 ; x++ ){
    for( int y=0 ; y<10 ; y++ ){
        DrawGraph( dspX+x*xx+y*yx , dspY+y*yy+x*xy-land[x][y][1]*height , Gland[land[x][y][0]] , TRUE );
    }
}