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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
foo

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

#1

投稿記事 by foo » 8年前

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

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

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

よろしくお願いします

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

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

#2

投稿記事 by みけCAT » 8年前

foo さんが書きました:ここの部分なのですが、 j*CHIP_SIZE-camerax 

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

view_chipx は j*CHIP_SIZE-camerax

これを計算した後の値と同じなのでしょうか
そういうことになると思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

foo

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

#3

投稿記事 by foo » 8年前

理解できました。ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る