最終更新 2003 10/01
サンプルのダウンロード → API_Bitmap6.lzh(99k)
全ソースコード
画面がチラつかないようにするには
1.ウィンドウと同じサイズの空のビットマップを作る
2.必要なビットマップをメモリに読み込む
3.空のビットマップに必要なビットマップを全て貼り付ける
4.空のビットマップをウィンドウに転送する
こんな手順で処理を行います。
メモリに空のビットマップを作ったり、メモリにビットマップを読み込む方法は
前の項で説明しているのでここでは省略します。
シューティングを例にとると、敵キャラの絵、敵の弾、自機、自機の弾、背景の
パーツスコアや残機の文字や絵などを表示する必要がありますが、ひとつひとつの
絵を直接ウィンドウに貼り付けていると画面がチラついてしまいます。
ですから、ウィンドウと同じサイズの見えない画面をメモリに作っておいて
まずはその画面に必要な絵を全て貼り付けます。
全て絵を貼り付け終わったら、最後にその見えない画面をごっそりウィンドウに
転送します。
そうすると、ウィンドウに絵を貼り付ける回数が1回で済むのでチラつきを
押さえることができます。
何故ひとつひとつ絵をウィンドウに貼り付けるとチラつくのかというと
垂直帰線割り込みというモニタの仕組みと関係があるそうです。
説明は長くなるので省略します。
また、必要な絵を貼り付けるための見えない画面をワークスクリーンとか裏画面
などと言ったりします。DirectDraw ではバックサーフェスにあたります。
|