'起動するとよばれるルーチン
@S_CAVE
'GCOPYで使うグラフィック面を取得
GOSUB @WINBUFF
IF BF==0THEN GOSUB@SYS_ERR_BUFF:RETURN'取得できないとエラー
CAVE_BF=BF
WINTTL$="CAVE-OCHAME" 'タイトル
GOSUB@INI_CAVE
RETURN
@INI_CAVE
CAVE_S=0
CAVE_Y=30
CAVE_V=RND(122)
CAVE_P=0
CAVE_W=0
WINY2=191/2+11'ウィンドウサイズ
WINX2=125
GPAGE 0,CAVE_BF,M:GCLS 14:GPAGE 0,!M,M'画面初期化 画面初期化APIがあるけどCAVE作った後に実装したため使われていない
CAVE_SI=2'縮小率
WINCLS=1
CAVE_U=0
CAVE_X=0
RETURN
'ウィンドウが閉じられるとヨバレルルーチn
@C_CAVE
GOSUB @WINCLOSE'終了させるルーチン
CAVE_GV=0'ゲームオーバーフラグ
CAVE_S=0
BF=CAVE_BF:GOSUB @WINBUFFC'グラフィック面を開放
RETURN
@WIN_CAVE
GCOPY CAVE_BF,4,0,255/CAVE_SI,191/CAVE_SI,WFX,WFY,0'画面コピー 画面コピーAPIがあるけどCAVE作った後に実装したため使われていない
WINSX=0:WINSY=0WINSC=0
WINSTR$=STR$(0OR CAVE_S)'整数化して文字列化
GOSUB @WINSTRPUT'文字表示ルーチン
WINSX=0
WINSY=8
WINSTR$="RESET CLICK"
'ゲームオーバー時の処理(サブルーチンにすべき)
IF CAVE_GV THEN GOSUB @WINSTRPUT
IF CAVE_GV==1AND WINACTV==1AND CLICK3==1AND WINFLG[TSK]==2THEN GOSUB@INI_CAVE:CAVE_GV=0
IF CAVE_GV==1THEN RETURN
BF=CAVE_BF
GOSUB @WINBUFFP'描画する面を取得したグラフィック面にする
'縮小させて変数の被り回避させたこと以外は基本的に同じ
CAVE_P=CAVE_P+1:CAVE_W=70-CAVE_P/20
GCOPY CAVE_BF,8/CAVE_SI,0,255/CAVE_SI,191/CAVE_SI,0,0,1
GFILL (254-6)/CAVE_SI,0,255/CAVE_SI,191/CAVE_SI,7
GFILL (254-6)/CAVE_SI,CAVE_V/CAVE_SI,255/CAVE_SI,(CAVE_V+CAVE_W)/CAVE_SI,14
CAVE_I=(GSPOIT(34/CAVE_SI,(CAVE_Y)/CAVE_SI+2)<14)CAVE_S=CAVE_S+1/CAVE_SI
IF CAVE_I==1AND CAVE_MU==0THEN CAVE_GV=1
GFILL 30/CAVE_SI,CAVE_Y/CAVE_SI,34/CAVE_SI,(CAVE_Y+4)/CAVE_SI,2
CAVE_X=CAVE_X-(16 AND BUTTON())%5+0.5
CAVE_S=CAVE_S+(0OR ABS(CAVE_X))CAVE_U=RND(2)*4-2
CAVE_V=CAVE_V+CAVE_U*(CAVE_U+CAVE_V>0)*(CAVE_U+CAVE_V+CAVE_W<191)
CAVE_Y=CAVE_Y+CAVE_X/CAVE_SI
GOSUB@WINBUFFP2'描画面を通常に
RETURN
最終更新:2013年10月05日 22:49