;スクリーンセーバー本体 *ssproc ax=ginfo_dispx:ay=ginfo_dispy ; ax,ayに画面サイズ bgscr 2,ax,ay,1,0,0,ax,ay ; ID2にフルスクリーン画面を作成 *textput font "MS ゴシック",100 rr=rnd(255) xx=rnd(ginfo_winx) yy=rnd(ginfo_winy) pos xx,yy color rr,10,10 mes "screen saver" wait 20 goto *textput |
これがスクリーンセーバー本体です。その7 スクリーンセーバーの作り方(1)に戻る
始めにディスプレイ全体の解像度を得ます。(ginfo_dispx,ginfo_dispy)
次にその座標で、ID2のスクリーンに画面を設定します。
今回はfont命令で大きな字を表示するものになっています。
ginfo_winx,ginfo_winyにはカレントのウィンドウサイズが入っています。
スクリーンセーバーを作るときには重宝する変数です。
また、最後にgoto命令でループを作ってるところがあります。
そのまえのwait命令に注目してください。
単純に時間を待つという機能以外に、デバッグ時にキー入力を受け付けるという意味もあります。
このプログラムでwait命令を消して実行してみれば分かりますが、ALT+F4で停止することが出来なくなります。
この本体部分で、写真を表示したり、キャラクターを動かしたりすることでスクリーンセーバーになります。
どのような演出で画面を作っていくかで、スクリーンセーバーの善し悪しが決まります。
今回のスクリプトは、画面上に字が増えていくばかりで画面が汚くなっていくので、スクリーンセーバーとしては失格です。
実際には、ループ回数を数えて画面をクリアするなどの処理が有効でしょう。