1.2 バックバッファ - Multi Media Club Wikiへ

1.2
バックバッファ
画面をちょっとだけ綺麗にする
まず前提として
描画命令は1つずつ実行されている
►キャンバスに紙を1枚ずつ貼っていくイメージ
それぞれの命令の実行時間はゼロではない
►すンごい速いけど時間は確実に消費している
ゲームではすンごい数の描画命令を実行する
►弾幕ゲームなら弾だけで数千数万
►エフェクトとかも含めたら・・・?
1.2 バックバッファ
2
従来のプログラムの欠点
従来のプログラムでは画面にチラツキが起こる
►描画命令が増えると全て終わるまでの時間が長い
►処理途中が目に見えてしまう可能性がある
この形式ではアニメーションが再生されません
以下のPPTX形式ならアニメーションを再生できます
http://nanzanmmc.net/_media/pc/lecture/game/12_backbuffer.pptx
※実際はもっと素早い
1.2 バックバッファ
3
そこでバックバッファ
バックバッファとは表示されない画面のこと
►裏画面で描画処理を終わらせてから表画面と交換
►表示されている画面には常に完成画面だけが映る
この形式ではアニメーションが再生されません
以下のPPTX形式ならアニメーションを再生できます
http://nanzanmmc.net/_media/pc/lecture/game/12_backbuffer.pptx
表画面
裏画面
※見えるのはこっちだけ
※描画処理はこっち
1.2 バックバッファ
4
バックバッファの使い方
バックバッファを使うように設定する
►フレーム外で DxLib_Init() より後に書こう
if (DxLib_Init()) return -1;
// バックバッファを使うように設定する
SetDrawScreen(DX_SCREEN_BACK);
表画面と裏画面を交換する処理を追加する
►この処理は ScreenFlip() が担っている
►フレーム内で描画処理が終わった後に書こう
LoadGraphScreen(x, y, "player.bmp", FALSE);
if (ScreenFlip()) break;
if (ProcessMessage()) break;
}
1.2 バックバッファ
5
用語の勉強
オフスクリーンバッファ
►裏画面のこと
►バックバッファも同じ意味
ダブルバッファリング
►今回やった処理の方式のこと
1.2 バックバッファ
6
用語を勉強する意義
用語なんかより考え方の方が断然重要?
►確かに考え方も重要だけど・・・
用語を知らないと意思疎通できない
►誰かに質問するにも上手く説明できない
►説明する側も説明しにくい
►対等に相談するのも難しい
ということで知らないと損するのです
►用語が伴ってこその考え方ということだね
►なんとなく覚えておこう
1.2 バックバッファ
7
補足事項
プログラミング用語集(随時更新)
►Wikiを見てね
http://nanzanmmc.net/pc/lecture/game/add
1.2 バックバッファ
8