SUPPORT
h_top333.jpg

表示にアクションをつけてみよう - その1 -

表示にアクションをつけてみよう - その1 -

 ただ文字を表示させるだけでは、つまらないですよね。 そこで、次は表示に、アクションをつけてみましょう。 このページでも、256X64dotの表示モジュールを使用した場合を例にあげます。

スクロール表示をさせてみよう

 まずは、スクロールから試してみましょう。 「macro操師」"ヘルプ"のScrollを参考にしてください。

 

プログラム8


Sub Start()
          Cursor 0 , 0
          Cls

          SetFont 16X32
          KanjiOn
          Print "アクション"
          Sleep 4000 / 14             '・・・①

          Cursor 256 , 0             '・・・②
          Print "スクロール"         '・・・③
          Scroll 8 , 256 , 1         '・・・④
          Sleep 2000 / 14
End Sub

 このプログラムを実行すると、"アクション"という文字が表示されて、"スクロール"という文字が右から流れてきて、左端で停止します。

プログラムの仕組

 8-①(Sleep 4000 / 14)は、処理を一定時間止める命令です。 Sleep 1にすると約14msec処理が止まりますので、Sleep 4000 / 14にすると"アクション"という表示が約4sec止まります。

 8-②(Cursor 256 , 0)でカーソルを右に256dotずれた位置にあわせます。 256dotずれた位置だと、はみ出しているのではないかと思ってしまいそうですが、実は見えている画面の裏側に「非表示エリア」というのがあります。 そこに"スクロール"という文字をしまっておいて、画面を徐々に左側にシフトさせるのです。

 各表示モジュールの表示メモリは

モジュールタイプ 表示エリア 非表示エリア 全表示メモリ
256X16dot 256dot 1792dot 2048X16dot
256X64dot 256dot 256dot 512X64dot
384X32dot 384dot 640dot 1024X32dot
512X32dot 512dot 512dot 1024X32dot

です。

 8-④(Scroll 8 , 256 , 0)はスクロールさせる命令です。


Scroll shift , repetition , speed

です。

 


 shiftの部分で、1回でどれだけシフトさせるか定義します。

 

 シフトの方向は、上から下、右から左です。 また、表示メモリは、縦8dotずつでグループになっています。

 プログラム8は縦64dotを仮定していますので、(64 / 8 =) 8と定義すれば、1回のシフトでちょうど左に1dotずれることになります。 64とすると8dotずれます。 同様の考えで、縦16dotの場合は2、縦32dotの場合は4と定義すると、左に1dotシフトします。

 そしてrepetitionで何回シフトさせるかを定義します。 例えば、縦64dotでshiftが8の場合はrepetitionが256だと、左に256dot移動します。 そのため、8-②~④で"スクロール"という文字が、1画面分移動し、左端に停止するのです。

 

 

 


 ためしに8-④を


Scroll 8 , 768 , 1

としてみてください。 表示エリアが256dot、非表示エリアが256dot、表示エリア(2回目)が256dot、合計768dotですので、スクロールは、1回目でサイドアウトして、2回目で左端停止します。

また、


Scroll 64 , 32 , 1

とすると、とても早いスクロールになりました。 これは1回のシフトでたくさん移動するためです。 1回で8dot左にずれることになります。 そして、8dotのシフトが32回ですから、全部で8 X 32 = 256dotスクロールすることになります。

 speedの部分で、1回シフトする時間を定義します。 その時間は約speed×約14msecになります。 この部分は、省略可能です。省略すると1と同じ(約14msec)です。

※Sleep、Scrollで時間を定義する場合、256X16dot、256X64dot、512X32dotの表示モジュールは、1にすると約14msec止まります。 384X32dotの場合は約13msec、256X128dotの場合は約16msecです。)

 


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

OK