SUPPORT
h_top333.jpg

絵を表示させてみよう -その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

と書くほうが分かりやすいかもしれませんね。


当ウェブサイトでは、お客さまによりよいサービスをご提供するため、Cookieを使用しています。
Cookieを無効にする方法を含め、当社のCookieの使用については「個人情報保護方針」をお読みください。

OK