スクリーンセーバーの作り方
これ以降のページでは、次々とプログラムが出てきますので、各自プログラムを入力して試してください。
ひとつ前のプログラムと異なる箇所(太字の箇所)を意識しながらやってみてください。
それでは、上で作成した画像をHSPで表示してみましょう。 まずは、画像を表示するウィンドウをいくつか作ってみます。
prog03.as :screen 2, 200, 200 screen 3, 200, 200 screen 4, 300, 200 stop
白いウィンドウが4つ開いたでしょう。そのうち一番大きなウィンドウは、HSP が自動的に開くウィンドウです。 残り3つの小さいウィンドウはscreen 命令で開いたものです。 screenのすぐ後に書く数字は、ウィンドウの番号です。後で、どのウィンドウが分かるように番号を付けておくわけです。 1から7までの好きな数字を使えばいいんですが、ここでは 2番、3番、4番としています。 (HSP が自動的に開くウィンドウは0番になっています。)
それぞれのウィンドウには別々の文字を書くことが出来ます。
prog04.as :screen 2, 200, 200 print "Test." screen 3, 200, 200 screen 4, 300, 200 print "テストです。" stop
プログラムと実行結果を比べてみると分かるように、新しいウィンドウを開いた直後には、そのウィンドウに書かれます。
では、いよいよ画像をウィンドウに表示してみましょう。
prog05.as :screen 2, 200, 200 picload "pic1.bmp" screen 3, 200, 200 picload "pic2.bmp" screen 4, 300, 200 gcopy 2 stop
画像を表示する命令picloadについても、新たに開いたウィンドウに画像が表示されます。 (画像の大きさとウィンドウの大きさが同じでない場合、自動的に調節してくれます。)
最後に開いた4番目のウィンドウ(ちょっと大きめのウィンドウ)の左上隅にちょっとだけ画像がでていますね? これは下から2行目の gcopy (ウィンドウからウィンドウへ画像をコピーする命令) によって描かれた画像です。 gcopy 2の意味は、2番のウィンドウから画像をコピーする、ということです。 コピーする先は(直前に開いた)4番のウィンドウにになります。 画像が不完全にしかコピーされていないのは、画像の大きさを指定していないからです。 次のように書けば、ちゃんと全部がコピーされます。
prog06.as :screen 2, 200, 200 picload "pic1.bmp" screen 3, 200, 200 picload "pic2.bmp" screen 4, 400, 400 gcopy 2, 0,0, 150,150 stop
位置を指定してコピーするには以下のように書きます。
prog07.as :screen 2, 200, 200 picload "pic1.bmp" screen 3, 200, 200 picload "pic2.bmp" screen 4, 400, 400 pos 50, 150 gcopy 2, 0,0, 150,150 stop