HSP教室 入門編

その8 スクリーンセーバーの作り方(2)

;スクリーンセーバー本体
*ssproc
	ax=ginfo_dispx:ay=ginfo_dispy
	bgscr 2,ax,ay,1,0,0,ax,ay
*mainlp
	gosub *brown
	goto *mainlp
*brown
	font "MS ゴシック",80,0
	cls 4
	ct=0
	xx=ax-250
	if ax<10 :ax=100
	rx=rnd(xx)
	rs=rnd(4)
*g2
	ct+=1
	if ct>400 :return
	rr=rnd(255)
	color rr,rr,rr
	ry=rnd (ay/80)
	ry=ry*80
	rx=rnd (ax/80)
	rx=rx*80
	pos rx+rs,ry+rs
	print "□"
	wait 1
	goto *g2

"その7"のスクリーンセーバーの本体の部分を差し替えてみました。
上にあるスクリプトは本体分だけです。
これは、すでにダウンロードコーナーで発表している”スクリーンセーバー[001b]”の一部です。

今回のポイントはginfo_dispxとginfo_dispyを使っている事です。
現在使用している画面の解像度が分かります。

スクリーンセーバーが動いているときに、同じパターンを表示し続けると、スクリーンにパターンが焼き付いてしまいます。
これでは、スクリーンセーバーの意味がありません。

乱数rsを使用し、毎回微妙に位置をずらしています。
また、実際にスクリーンセーバーとしての完成度を考えたら、
数パターンの画像を用意するの方がよいでしょう。

さて、中身の解説ですが、font命令で80ポイントの大きなフォントを指定しています。
画面上に見える四角はスクリプトの終わりの方でprint命令で表示している四角です。

print命令はmes命令と全く同じ動きをする命令です。

その9に行く

目次に戻る