2010年3月23日火曜日

移動:groll命令について

Script.1
screen 2,200,200
repeat 50
mes "unko"
loop


これを(スクリプトエディタで)実行すると新たに出現する200×200のスクリーン(ID:2)に「unko」という文字がズラーっと縦に並ぶ。

ここで俺が勘違いしてたのは、HSPのドキュメントとかに書いてある「ID2以降のスクリーンはスクロールできる」という文章。これを「ID2以降なら勝手にスクロールバーが出て自由に動かせる」って意味だと思ってた。

どうやらver.2ではそんなこともあったらしい(2.61ではなかった気がするけど)んだけど、ver.3では少なくともそういう仕様ではない。らしい。

たとえばスクリーン(ID:2)を新聞紙とする。さらにここで必要になるのがウィンドウサイズを指定するwidth命令。これは四角い虫眼鏡みたいなもので、「新聞紙上の見える範囲を定める」もの。

screen 2,500,500
repeat 50
mes "この場合もウィンドウサイズは200×200である。"
loop
width 200,200


この場合自分は老眼で虫眼鏡の大きさ以上の範囲は読むことができない。しかも虫眼鏡は動かすことができないので新聞紙の一部しか読めない。

全体を読みたい!ということで使用するのがgroll命令。これは新聞紙上の虫眼鏡の位置を指定することができる命令。これで自由に読むことができるようになった。

screen 2,500,500
repeat 50
mes "実行すると、だんだんスクロールしていく。"
loop
width 200,200

repeat
groll 0,2*cnt
wait 2
loop


ちなみにこちらのスクリプトは虫眼鏡の最下部が新聞紙の端に到達した時点でスクロールをやめる。

これをマウスホイールの移動量なんかと絡めるとスクロールが実装できる。めんどくせぇ・・・

0 件のコメント: