アットウィキロゴ

OTYAX > CAVE

'起動するとよばれるルーチン
@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