HSP教室 入門編

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

	;スクリーンセーバー本体
*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

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

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

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

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