一から始める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へ?