ページ 11

2Dアクションゲームのカメラスクロールについて

Posted: 2016年10月02日(日) 15:07
by foo
2Dアクションゲームでのカメラスクロールについてお聞きしたいのですが

http://dixq.net/forum/viewtopic.php?f=3&t=7765

このページを参考にカメラスクロールをすることはできたのですが、いまいち何をしているのかよくわかっていません

コード:

// マップの描画
        {
            int i, j ;
 
            for( i = 0 ; i < MAP_HEIGHT ; i ++ )
            {
                for( j = 0 ; j < MAP_WIDTH ; j ++ )
                {
                    // 1は当たり判定チップを表しているので1のところだけ描画
                    if( MapData[i][j] == 1 )
                    {
                        DrawBox( j * CHIP_SIZE  - camerax,                i * CHIP_SIZE,
                                 j * CHIP_SIZE + CHIP_SIZE - camerax,    i * CHIP_SIZE + CHIP_SIZE,
                                 GetColor( 255, 255, 255 ), TRUE ) ;
                    }
                }
            }
        }
ここの部分なのですが、 j*CHIP_SIZE-camerax 

これはなぜ camerax を引いているのでしょうか?

また、
int view_chipx = map_chipx - camerax;
と書きましたが、無駄が多いけど単純にマップチップのdrawでX座表示にcameraxを足したほうが簡単ですね。
とありますが、これはつまり、

int view_chipx = j*CHIP_SIZE-camerax 

これと同じ意味なのでしょうか

つまり

view_chipx は j*CHIP_SIZE-camerax

これを計算した後の値と同じなのでしょうか

いまいち基本的なことが理解できていないのだろうと自分でも思いますが

よろしくお願いします

Re: 2Dアクションゲームのカメラスクロールについて

Posted: 2016年10月02日(日) 16:34
by みけCAT
foo さんが書きました:ここの部分なのですが、 j*CHIP_SIZE-camerax 

これはなぜ camerax を引いているのでしょうか?
カメラが右に移動するとカメラから見た風景は左に移動して見えるはずなので、この「左に移動」を引き算で表現しているのでしょう。
foo さんが書きました:つまり

view_chipx は j*CHIP_SIZE-camerax

これを計算した後の値と同じなのでしょうか
そういうことになると思います。

Re: 2Dアクションゲームのカメラスクロールについて

Posted: 2016年10月02日(日) 18:42
by foo
理解できました。ありがとうございました。