■ 新・ゲーム開発講座 |
■ へっぽこプログラミング入門♪ |
■第18夜:改ページ@ 今回は改ページ処理についてです。今までは1ページ分しかテキストを表示できませんでしたのでノベルというよりは「本日の独り言」程度の内容しか表現できませんでしたが、改ページ処理が出来るようになれば長い文章でも大丈夫♪(^0^)
… ということで、さっそくですが仕様です。
さて「背景画像で画面を書き換える」という作業になる訳ですが、今までのプログラムでは1枚のバックサーフェイス上に直接、画像と文字を書き込んでいく方式だったのでそのままでは無理があります。別途背景画像を保持しておくサーフェイスを用意して、ここから転送してやることにしましょう。
■背景画像サーフェイスの生成 例によって、main.cpp にてサーフェイス管理用のグローバル変数を追加します。 |
HDC HBITMAP |
BG_DC; //デバイスコンテキスト(背景画像) hBG_Bitmap; //背景画面本体のハンドル |
サーフェイスの初期化は、第13夜のバックサーフェイス生成とまったく同じです。初期化の最後にデフォルトの背景を読み込むようにしておきましょう。(main.cpp参照) |
//----------------------------------- void init_BG_Surface()
} //---------------------------------- // 初期化メイン //---------------------------------- void init_game()
} |
■フラグ 今回は単なるサーフェイス間転送で BitBlt() 一発で完了してしまうので、必要ありません。 ■コマンド解釈部 以下のようにコマンド初期化関数 Com_page() を追加します。(TextEngine.cpp) |
void Command_call() {
|
■コマンド本体 コマンド本体はとてもシンプルです。背景画像をバックサーフェイスに転送することで、いままで表示していた文字を消してしいます。その後、文字表示位置をテキストエリアの左肩にリセットすれば完了です。 int Com_page()
} さっそく、サンプルソースを実行してみましょう。ちゃんと改ページ処理が出来ていますね♪ |
![]() |