1章.フルスクリーン画面にBMP画像を単純に表示する(&画面の説明) |
|||
1999.4.27 |
|||
|
フルスクリーン画面に、BMP画像を単純に表示するプログラムを作ってみます。 以下に基礎となるプログラムを載せますので実行してみてください。 テキストファイルに以下のプログラムを転写したものと、テスト用画像(TEST.BMP)を同一のフォルダに配置し、プログラムを実行します。「ESC」を押す事でプログラムを終了します。 CH=G@SETUP( 640 , 480 , 16 , 0 ) //画面初期化
BM=G@CHRLOAD("TEST.BMP") //画像読み込み
G@CHRCOPY( BM , CH ) //画像を画面にコピー
G@FLIP( ) //フリップ
LOOP
S@WAIT( ) //システムウェイト
ENDLOOP
まずは、上記のプログラムを簡単に説明します。
画面の考え方もマニュアルを参照してみてください。 G@SETUP関数は、使用する画面のサイズ、色数、モードを指定します。LGPで画面処理を行う場合、必ず一度だけ実行してください。後はBMP画像を読み込んで画面に書いてモニターに表示するだけです。簡単でしょ? LOOP〜ENDLOOPですが、これは画面の処理にはまったく関係ありません。無くても良いものなので取り去ってもかまいませが、取らないほうが良いです。S@WAIT関数は、ESCキーを押したらプログラムを終了するなどのWindowsとLGPが連絡を取りあう関数であり、LOOP〜ENDLOOPで同関数を繰り返しているのです。つまり、ESCキーが押されるまでプログラムを止めるという機能を実現しており、画像の表示と同時にプログラムを終了してしまう事を防いでいるのです。 ところで、G@CHRCOPY関数でBMP画像を画面にコピーしているのですが、これだけではモニターにはBMP画像は表示されません。モニターに表示させるには、コピー後にG@FLIP関数を実行する必要があります。これには、深い理由があります。一言で言えば「描いている最中を見られたくない」からです。今回のように1枚のBMP画像を表示するならば、描いている時間は一瞬でしょうが、普通ゲームでは何枚ものBMP画像を重ねて描き1コマの画面を完成させている為、直接モニターに描いていると、描いている最中をユーザーに見られる事になり、なんともみっともない状況になってしまいます。そこで、ユーザーには見えないワーク画面に描き、1コマの画面を完成してからモニターに表示する事で、描いている最中をユーザーに見られる事を防いでいます。 |