一から始めるHSP講座2
以下、サンプルソース注釈・解説+駄文
中間発表(?)に備えて(とりあえず、形だけでも)ちゃんとしたスクリーンセーバーを用意してみました。
次々と絵が出てくるスクリーンセーバーです。
前回と同じく、見たこと無い関数とか命令文とかでてきますが、
簡単にいじれるように作ったつもりです。

	;
	;スクリーンセーバー
	;
	s=cmdline:peek a,s,1		; コマンドラインの2文字目を取り出す
	if a='p' : goto *sspre		; プレビュー
	if a='s' : goto *ssmain		; フルスクリーン
	if a='c' : goto *sscfg		; コンフィグ
	if a='' : goto *ssmain		; ダブルクリック起動時
	;
	mes "Unknown switch ["+cmdline+"]"
	stop

 
*sscfg
	;コンフィグ(設定画面)
	;
	tt="スクリーンセーバー"
	title tt:width 320,200:pos 8,100
	mes tt
	mes "エセル"
	pos 230,140:button "OK",*ssend
	stop
*ssend
	end

 
*sspre
	;プレビュー画面
	cls:mes "プレビュー画面":stop

 
	;スクリーンセーバー本体
*ssmain
	
	randomize
	ax=dispx:ay=dispy		; ax,ayに画面サイズを代入
	bgscr 2,ax,ay,0,0,0,ax,ay	; ID2にフルスクリーン画面を作成

	buffer 3,,,0	
	picload ""		; 1番目の画像
	wx3=winx:wy3=winy
	buffer 4,,,0
	picload ""		; 2番目の画像
	wx4=winx:wy4=winy
	buffer 5,,,0
	picload ""		; 3番目の画像
	wx5=winx:wy5=winy
	buffer 6,,,0
	picload ""		; 4番目の画像
	wx6=winx:wy6=winy
	buffer 7,,,0	
	picload ""		; 5番目の画像
	wx7=winx:wy7=winy
	buffer 8,,,0
	picload ""		; 6番目の画像
	wx8=winx:wy8=winy
	buffer 9,,,0
	picload ""		; 7番目の画像
	wx9=winx:wy9=winy
	buffer 10,,,0
	picload ""		; 8番目の画像
	wx10=winx:wy10=winy
	buffer 11,,,0	
	picload ""		; 9番目の画像
	wx11=winx:wy11=winy
	buffer 12,,,0
	picload ""		; 10番目の画像
	wx12=winx:wy12=winy
	gsel 2

*main
	cls 4

	repeat 20
	stick aaa,0
	if aaa=128 :end
	rnd aaz,10
	if aaz=0:goto *aa
	if aaz=1:goto *ab
	if aaz=2:goto *ac
	if aaz=3:goto *ad
	if aaz=4:goto *ae
	if aaz=5:goto *af
	if aaz=6:goto *ag
	if aaz=7:goto *ah
	if aaz=8:goto *ai
	if aaz=9:goto *aj
*aa
	rnd aax,ax-64:rnd aay,ay-64	
	pos aax,aay
	gcopy 3,0,0,wx3,wy3
	wait 13;500
	goto *lop
*ab
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 4,0,0,wx4,wy4
	wait 13;500
	goto *lop
*ac
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 5,0,0,wx5,wy5
	wait 13;500
	goto *lop
*ad
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 6,0,0,wx6,wy6
	wait 13;500
	goto *lop
*ae
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 7,0,0,wx7,wy7
	wait 13;500
	goto *lop
*af
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 8,0,0,wx8,wy8
	wait 13;500
	goto *lop
*ag
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 9,0,0,wx9,wy9
	wait 13;500
	goto *lop
*ah
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 10,0,0,wx10,wy10
	wait 13;500
	goto *lop
*ai
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 11,0,0,wx11,wy11
	wait 13;500
	goto *lop
*aj
	rnd aax,ax-64:rnd aay,ay-64
	pos aax,aay
	gcopy 12,0,0,wx12,wy12
	wait 13;500
	goto *lop
*lop
	loop
	goto *main

絵を差し換えるだけなら簡単に出来るスクリーンセーバーのサンプルソースです。
多分、簡単なはず…。


次ん。 TOPへ?