土曜日, 5月 13, 2006

読み込んだ画像を動かしてみた

読み込んだ画像の実態はタートルオブジェクトなので、当然動かすことができる。これを使えば、スクリーンセーバーによくある動く写真のようなことを、ドリトルの実行画面でも出来るのではないかと思い試してみた。

ドリトルにはタイマーオブジェクトがあるので、これは意外と簡単に実現できる。しかも複数のタートルをパラレルに動かせるから、2つの画像を読み込んで、これを画面上でランダムに動かすプログラムを作ってみた。

0.1秒間隔で動くタイマーを作り、5秒ごとに上下・左右・斜めに、0.1秒で1~3ドットづつランダムに動かしてみた。(どういうわけか、2枚目の画像が中心に読み込めない。)

//動く写真

描画:gload=[|file x y|タートル!作る ぺんなし (x)(y) 位置 (file) 変身する].

絵1=描画! ("c:\image\photo.jpg")(0)(0) gload.
絵2=描画! ("c:\image\大山桜.jpg")(-320)(240) gload.

時計1=タイマー!作る 0.1秒 間隔 5秒 時間.
時計2=タイマー!作る 0.1秒 間隔 5秒 時間.

[
 dx=2-random(3). dy=2-random(3). sp1=random(3). sp2=random(3).
 [dx+dy!=0]!なら[
  時計1! [絵1! (dx*sp1)(dy*sp1) 移動する]実行.
  時計2! [絵2! (dy*sp2)(dx*sp2) 移動する]実行. 時計2! 待つ.
 ]実行.
]! 10000 繰り返す.

//--------- ここまで ----------



長いループを作りたかったので、上の例では10000回の繰り返しにしてみたが、無限ループのテストにこういうのもやってみた。

[真]! の間 [・・・・] 実行

中断ボタンで上手く実行を停止できるのだが、その後に実行ボタンが有効にならない。こういう危険な使い方は止めた方がよさそうだ。