
絵を表示させてみよう -その4-
絵を表示させてみよう -その4-
ついにここまできました。お疲れ様です! それではFROMからのビットイメージの方法を覚えたところで、次にアニメーション表示をしてみましょう。 256X64dotの表示モジュールの使用例です。
このページも「macro操師」"ヘルプ"のCopyBmpを参考にしてください。 ビットファイルを大量にFROMに書き込んでおき、連続して順次表示させることで、アニメーション表示をさせることができます。
まず、ビットファイルをダウンロードしてください。 アニメーション画像のダウンロードはこちら
これらのファイルのサイズはすべて、256X64dotです。 そして、ファイルが多くて大変ですが、それらをFROM1から順に番号の若い方から書き込んでください。 (イメージツールのMemoryで"F0-4"を選択すると、FROM1から4の空いた場所に書き込んでいくことができます。)
プログラム20
Sub Start()
SetFont 16X32
KanjiOn
Cursor 0,0
Cls
For x = 0 To 79 '・・・①
CopyBmp from , 8 * x + 256 , 0 , 256 , 8 , 8 '・・・②
Next '・・・①
End Sub
いかがですか?このように動画のような表示もできます。 これはこの場合、登録してあるビットイメージを、フレーム000.bmpからフレーム079.bmpまで順に表示させることによってできるのです。
プログラムの仕組み
前回まではFROM0にビットイメージを登録していたので、アドレス、segment、offsetに関する理解が比較的簡単でした。 今回はFROM1から登録しはじめました。 FROM0とFROM1の間で、実はアドレスが途切れているため、連続した表示をさせたい場合には、FROM1から使った方が分かりやすいためです。
FROM0 0(00000&h) ~ 32767(07FFF&h)
FROM1 65536(10000&h) ~ 131071(1FFFF&h)
FROM2 131072(20000&h) ~ 196607(2FFFF&h)
FROM3 196608(30000&h) ~ 262143(3FFFF&h)
FROM4 262144(40000&h) ~ 327679(4FFFF&h)
表に示したように、FROM1の始まりは65536です。 従って、フレーム000.bmpのsegmentは256、offsetは0ですね。 1つのファイルのサイズが256X64dotであるため、その次に表示したいファイル(フレーム001.bmp)のsegmentは、
256 x 8 / 256 = 8
のように、フレーム000.bmpよりも8だけ増えます。 その後、フレーム079.bmpまで同様で、8づつ増え続けます。 割り算で余りが出ていませんから、offsetは常に0です。 そのことから考えると、20-①、②のように書くことができます。
ちなみに、10進法よりも16進法の方が慣れている、という方は、20-②を
CopyBmp from , &h08 * x + &h100 , 0 , 256 , 8 , 8
と書くほうが分かりやすいかもしれませんね。