(4)スクリーンセーバー本体

	;スクリーンセーバー本体
*ssproc
	ax=dispx:ay=dispy		; ax,ayに画面サイズ
	bgscr 2,ax,ay,1,0,0,ax,ay	; ID2にフルスクリーン画面を作成
*textput
	font "MS ゴシック",100
	rnd rr,255
	rnd xx,winx
	rnd yy,winy
	pos xx,yy
	color rr,10,10
	mes "screen saver"
	wait 20
	goto *textput

これがスクリーンセーバー本体です。

始めにディスプレイ全体の解像度を得ます。(dispx,dispy)
次にその座標で、ID2のスクリーンに画面を設定します。
今回はfont命令で大きな字を表示するものになっています。
winx,winyにはカレントのウィンドウサイズが入っています。
スクリーンセーバーを作るときには重宝する変数です。
また、最後にgoto命令でループを作ってるところがあります。
そのまえのwait命令に注目してください。
単純に時間を待つという機能以外に、デバッグ時にキー入力を受け付けるという意味もあります。
このプログラムでwait命令を消して実行してみれば分かりますが、ALT+F4で停止することが出来なくなります。

この本体部分で、写真を表示したり、キャラクターを動かしたりすることでスクリーンセーバーになります。
どのような演出で画面を作っていくかで、スクリーンセーバーの善し悪しが決まります。
今回のスクリプトは、画面上に字が増えていくばかりで画面が汚くなっていくので、スクリーンセーバーとしては失格です。
実際には、ループ回数を数えて画面をクリアするなどの処理が有効でしょう。

その7 スクリーンセーバーの作り方(1)に戻る