この力技はすげえ
エピソード1のスタッフロールスクリプトを見て、なるほど、こんな技もあったのかと感心。
縦に長い画像を用意して、それをbtnに取り込む。それをbltで高速に画面に転写していく遣り方だ。
blt 0,0,640,480,0, 1,640,480:waittimer 45 blt 0,0,640,480,0, 2,640,480:waittimer 90 blt 0,0,640,480,0, 3,640,480:waittimer 136 blt 0,0,640,480,0, 4,640,480:waittimer 181 blt 0,0,640,480,0, 5,640,480:waittimer 227 blt 0,0,640,480,0, 6,640,480:waittimer 272 blt 0,0,640,480,0, 7,640,480:waittimer 318 blt 0,0,640,480,0, 8,640,480:waittimer 363 blt 0,0,640,480,0, 9,640,480:waittimer 409 blt 0,0,640,480,0, 10,640,480:waittimer 454 blt 0,0,640,480,0, 11,640,480:waittimer 500 blt 0,0,640,480,0, 12,640,480:waittimer 545 blt 0,0,640,480,0, 13,640,480:waittimer 591 blt 0,0,640,480,0, 14,640,480:waittimer 636 blt 0,0,640,480,0, 15,640,480:waittimer 682 blt 0,0,640,480,0, 16,640,480:waittimer 727 blt 0,0,640,480,0, 17,640,480:waittimer 773 blt 0,0,640,480,0, 18,640,480:waittimer 818 blt 0,0,640,480,0, 19,640,480:waittimer 863 blt 0,0,640,480,0, 20,640,480:waittimer 909 blt 0,0,640,480,0, 21,640,480:waittimer 954 blt 0,0,640,480,0, 22,640,480:waittimer 1000
これを延々と伸ばしていく。
実行すると、スタッフロールが秒速約22-23ドットの速度でスクロールしていく。
この方法の有利な点は、waittimerを使うことで、低スペックマシンでもほぼ同じ速度でのスクロールが実現できることか。表示できなかったら、どんどんコマ落としになって行く訳だ。
最後の行は、こう。
blt 0,0,640,480,0, 5520,640,480:waittimer 251000
ただまあ、これだけのスクリプトをベタ書きするよりは、やっぱりその……何らかの形でループを使いたいよね。5520行あるのが10行くらいには収まるんじゃね? まあ、途中で数字いじってスクロール速度をコントロールしたいとかそういのがあるんならわからんでもないけど。