固定画面型シューティングゲームです。次々と敵編隊(もしくは単機)が登場するので、敵の攻撃を回避しつつ撃破してください。全50フェーズです。This is a fixed shooter game. Avoid enemies' attacks and defeat them. There are 50 phases.
敵の発射する弾や敵本体に衝突するとミスになり、自機を1機失います。自機を全て失うとゲームオーバーです。8フェーズ毎に自機が1機増えます。You miss a ship if enemy or its fire hits. The game is over if you lose all ships. A ship is extended every 8 phases.
タイトル画面でAボタンを押すとゲーム開始です。十字キーで自機を上下左右に移動します。Aボタンでショットを撃ちます。セミオートなので、ちょっと押しただけでも数発ショットが発射されます。Aボタンを押し続けると、自機の移動速度が遅くなります。ゲームオーバーになったら、Aボタンを押すとタイトル画面に戻ります。Press A button to start game in title screen. You can move a ship by cross-key and shoot fires by A button semi-automatically. A ship moves slowly while holding A button. In game over screen, press A button to return to title screen.
ゲーム中は基本的にポーズができませんが、フェーズとフェーズの間、もしくはミスの直後、"READY?"と表示されている間にBボタンを押すとポーズがかけられます。ポーズ中にもう一度Bボタンを押す事でポーズが解除されます。Usually you can't pause the game. But while "READY?" is shown, you can pause/resume by B button.
ゲーム開始時にLボタンかRボタンを押したままにすると、画面上部に時間が表示されます。ゲーム中、Lボタン・Rボタン・STARTボタンを押す事でリセットできます。(タイトル画面に戻る)Playing time is shown if you start game with holding L button or R button. You can reset the game by pressing L button, R button and START button. (Then it goes to title screen.)
このプログラムは、以下のリソースも使用します。This program uses following resources.
※"CHR:SBFT_E04"は公式サイトで配布されているものと同一のデータです。※"CHR:SBFT_E04" is same as which you can get from this web site.
BF | Aボタンが押されているか |
BT | ボタンの状態 |
EA() | 敵のアニメーション番号 |
EC() | 敵の移動制御用カウンタ |
EF() | 敵の弾幕の種類 |
EI() | 敵の攻撃間隔 |
EJ() | 敵の攻撃カウンタ |
EN | 敵の数 |
EP() | 敵の耐久力 |
EP1(),EP2(),EP3() | 敵の移動処理の各種パラメータ |
ES() | 敵の移動スクリプトの番号 |
ET() | 敵の種類 |
ETX(),ETY() | 敵の移動先座標 |
EX(),EY() | 敵の座標 |
F$(),FC(),FP() | 弾幕の制御用パラメータ |
FI | 新規敵弾のスプライト番号 |
FT() | 弾幕のタイプ |
GS | ゲームの速度制御用パラメータ |
GT | 画面上部に時間を表示するか |
GW | ゲーム中断のカウンタ |
GY,GZ | 背景描画用パラメータ |
MA | 自機の左右傾き |
MC | 自機の残数 |
MD | 自機やられ → 登場までのカウンタ |
MF | 自機ショット制御用カウンタ |
MU | 新規自機ショットのスプライト番号 |
MV | 自機の移動速度 |
MX,MY | 自機座標 |
OV(,) | BGM調整用パラメータ |
PH | 現在のフェーズ数 |
SC(),SP(),SX(),SY() | 敵の移動スクリプトの各種パラメータ |
SI,SP | スクリプト読み込み用パラメータ |
SL() | 各フェーズのスクリプト参照先 |
TM | ゲーム開始からの経過フレーム数 |
TP | 現在のフェーズの経過フレーム数 |
001. ′┌─────────────────────────┐Л 002. ′│ PRG:OMSOC by OBONO │Л 003. ′└─────────────────────────┘Л 004. Л 005. CLEARЛ 006. DIM SL(50),SX(50),SY(50),SC(50),SP(50)Л 007. DIM FT(32),FP(32),FC(32),F$(32),OV(8,7)Л 008. Л 009. V$=”1.0.0718”Л 010. GOSUB @INЛ 011. @LPЛ 012. GOSUB @OPЛ 013. GOSUB @SIЛ 014. GOSUB @GMЛ 015. GOSUB @EDЛ 016. GOTO @LPЛ 017. Л 018. ′┝┸┝┸┝┸ MANAGE GAME ┝┸┝┸┝┸Л 019. Л 020. @GM ′ЙЙЙ MAIN LOOPЛ 021. Л 022. BT=BUTTON()Л 023. BF=(BT AND 16)!=0Л 024. ON !MD GOSUB @MS,@MVЛ 025. GOSUB @ENЛ 026. FOR I=84 TO 91Л 027. GOSUB @MTЛ 028. NEXTЛ 029. IF !GW AND !EN THEN GOSUB @GCЛ 030. IF !GW THEN TM=TM+1:TP=TP+1:IF SPHIT(8) THEN GOSUB @MDЛ 031. IF GW==1 THEN GOSUB @GRЛ 032. GW=GW-(GW>0)Л 033. GOSUB @GGЛ 034. IF BT==1792 THEN MC=-2:BGMSTOP:RETURNЛ 035. VSYNC 1Л 036. IF MD>0 AND MC<0 OR PH==50 THEN RETURNЛ 037. IF !GW OR GW>180 OR !(BT AND 32) THEN @GMЛ 038. Л 039. @GZ ′ЙЙЙ PAUSEЛ 040. Л 041. COLOR 14Л 042. LOCATE 13,13Л 043. ? ”PAUSE!”Л 044. COLOR 0Л 045. BEEP 4Л 046. BGMVOL 64Л 047. FOR I=1 TO 3Л 048. I=I-(!(BUTTON() AND 32) XOR I%2)Л 049. VSYNC 1Л 050. NEXTЛ 051. GOSUB @GC1Л 052. BEEP 4,2048Л 053. BGMVOL 127Л 054. GOTO @GMЛ 055. Л 056. @GC ′ЙЙЙ PHASE CLEARЛ 057. Л 058. FOR I=9 TO 83Л 059. SPCHR I,24Л 060. SPANIM I,9,2,1Л 061. NEXTЛ 062. PH=PH+1Л 063. MC=MC+!(PH%8)Л 064. IF PH==50 THEN RETURNЛ 065. BEEP 32Л 066. FOR I=0 TO 4Л 067. V=OV(I,PH/8)Л 068. Z=(PH%8)*16+8Л 069. BGMSETV 0,I,127*(V>2)+Z*(V%3-1)Л 070. NEXTЛ 071. FOR I=5 TO 7Л 072. BGMSETV 0,I,OV(I,PH/16)Л 073. NEXTЛ 074. LOCATE 12,10Л 075. ? ”PHASE ”;” ”*(PH<9);PH+1Л 076. @GC1Л 077. LOCATE 13,13Л 078. ? ”READY?”Л 079. LOCATE 0,22Л 080. ? ”Ph”;PH+1Л 081. LOCATE 29,22Л 082. ? ”Г”;MCЛ 083. GW=180Л 084. RETURNЛ 085. Л 086. @GR ′ЙЙЙ RESUMEЛ 087. Л 088. FOR I=10 TO 13Л 089. LOCATE 12,IЛ 090. ? ” ”*8Л 091. NEXTЛ 092. IF !EN THEN TP=0:GOSUB @SSЛ 093. RETURNЛ 094. Л 095. @GG ′ЙЙЙ DRAW BACKGROUNDЛ 096. Л 097. C=0Л 098. GOSUB @GG1Л 099. D=PH/10Л 100. GY=GY+COS(D)*4Л 101. GY=GY+((GY<-96)-(GY>=96))*192Л 102. GZ=GZ-SIN(D)*4Л 103. GZ=GZ+((GZ<0)-(GZ>=192))*192Л 104. C=1Л 105. GOSUB @GG1Л 106. IF !GT THEN RETURNЛ 107. COLOR 10Л 108. LOCATE 4,0Л 109. T=TMЛ 110. GOSUB @GTЛ 111. COLOR 5-!ENЛ 112. LOCATE 20,0Л 113. T=TPЛ 114. GOSUB @GTЛ 115. COLOR 0Л 116. RETURNЛ 117. @GG1Л 118. X=9216/(GZ+96)Л 119. P=249-X/12Л 120. IF P<242 THEN P=4Л 121. GLINE 128-X,0,128-X,192,C*PЛ 122. GLINE 127+X,0,127+X,192,C*PЛ 123. GLINE 32,96+GY*2,96,96+GY,C*243Л 124. GLINE 159,96+GY,223,96+GY*2,C*243Л 125. RETURNЛ 126. Л 127. @GT ′ЙЙЙ DRAW TIMEЛ 128. ? ” ”*(T<36000);T/3600 OR 0;”:”;Л 129. ? MID$(STR$(T%3600/60+100.001),1,5)Л 130. RETURNЛ 131. Л 132. ′┝┸┝┸┝┸ CONTROL PLAYER ┝┸┝┸┝┸Л 133. Л 134. @MS ′ЙЙЙ STAND BYЛ 135. Л 136. MD=MD-1Л 137. IF MD>64 THEN RETURNЛ 138. IF MD!=64 THEN @MS1Л 139. MC=MC-1Л 140. IF MC<0 THEN RETURNЛ 141. ON !EN GOSUB @GC1,@GCЛ 142. SPCHR 8,36,7,0,0,3Л 143. SPSCALE 8,100Л 144. MX=128Л 145. MY=200Л 146. MA=0Л 147. @MS1Л 148. MY=MY-.25Л 149. SPOFS 8,MX,MYЛ 150. RETURNЛ 151. Л 152. @MV ′ЙЙЙ MOVE PLAYERЛ 153. Л 154. V=(BT AND 8)/8-(BT AND 4)/4Л 155. W=(BT AND 2)/2-(BT AND 1)Л 156. IF V*W THEN V=V*.75:W=W*.75Л 157. MV=MV+SGN(!BF*2+1-MV)/8Л 158. MA=MA+SGN(V*3-MA)/2Л 159. IF MV>2 THEN V=V*2:W=W*2 ELSE V=V*MV:W=W*MVЛ 160. MX=MX+VЛ 161. MY=MY+WЛ 162. IF MX<40 THEN MX=40Л 163. IF MX>216 THEN MX=216Л 164. IF MY<128 THEN MY=128Л 165. IF MY>184 THEN MY=184Л 166. IF BF THEN MF=MF OR 24Л 167. MF=(MF-(MF>0))*!GWЛ 168. IF (MF AND 7)==7 THEN BEEP 47,8192,32,MX/2:X=MX-5:GOSUB @MF:X=MX+5:GOSUB @MFЛ 169. SPCHR 8,MA+36Л 170. SPOFS 8,MX,MYЛ 171. RETURNЛ 172. Л 173. @MF ′ЙЙЙ SHOTЛ 174. Л 175. SPOFS MU,X,MY-4Л 176. SPOFS MU,X,MY-244,40Л 177. MU=MU+1-(MU==91)*8Л 178. RETURNЛ 179. Л 180. @MT ′ЙЙЙ JUDGE HITTINGЛ 181. Л 182. IF !(SPCHK(I)%2) THEN RETURNЛ 183. IF !SPHIT(I) THEN RETURNЛ 184. H=SPHITNOЛ 185. IF H>=8 THEN RETURNЛ 186. SPREAD(I),X,YЛ 187. SPOFS I+8,X,YЛ 188. SPANIM I+8,9,2,1Л 189. SPOFS I,0,0Л 190. EP(H)=EP(H)-1Л 191. IF PH>=45 AND PH<=47 AND EP(H)==40 THEN EF(H)=EF(H)+1Л 192. IF EP(H)>0 THEN BEEP 27,0,32,X/2:RETURNЛ 193. SPCHR H,24,6,0,0,3Л 194. SPSCALE H,200Л 195. SPANIM H,9,4,1Л 196. SPCOL H,0,0,16,16,0,0Л 197. EN=EN-1Л 198. BEEP 30,0,127,X/2Л 199. RETURNЛ 200. Л 201. @MD ′ЙЙЙ DEFEATEDЛ 202. Л 203. SPCHR 8,24,6,0,0,3Л 204. SPSCALE 8,200Л 205. SPANIM 8,9,4,1Л 206. MD=180Л 207. GW=300Л 208. IF !MC THEN BGMSTOPЛ 209. BEEP 13,0,127,MX/2Л 210. RETURNЛ 211. Л 212. ′┝┸┝┸┝┸ CONTROL ENEMY ┝┸┝┸┝┸Л 213. Л 214. @EN ′ЙЙЙ MOVE ENEMIESЛ 215. Л 216. FOR I=0 TO 7Л 217. IF EP(I)>0 THEN GOSUB @EFЛ 218. NEXTЛ 219. IF PH<48 THEN RETURNЛ 220. X=128Л 221. Y=48Л 222. F=159Л 223. IF TP>=60*GS AND TP%(16*GS)==0 THEN GOSUB @FIЛ 224. RETURNЛ 225. Л 226. @EF ′ЙЙЙ MOVE A ENEMYЛ 227. Л 228. C=EC(I)Л 229. IF !C THEN GOSUB @ESЛ 230. IF ES(I)<0 THEN EC(I)=C-1:RETURNЛ 231. X=EX(I)Л 232. Y=EY(I)Л 233. A=EA(I)Л 234. ON ET(I)%3 GOSUB @EF1,@EF2,@EF3Л 235. SPOFS I,X,YЛ 236. SPCHR I,A+ET(I)%3*8Л 237. EX(I)=XЛ 238. EY(I)=YЛ 239. EA(I)=AЛ 240. EC(I)=C-1Л 241. EJ(I)=EJ(I)-1Л 242. IF EJ(I)>0 OR PH>=48 THEN RETURNЛ 243. IF !RND(EN) THEN F=EF(I):GOSUB @FIЛ 244. EJ(I)=EI(I)+RND((EN-1)*GS+1)Л 245. RETURNЛ 246. @EF1Л 247. A=(A+.5)%8Л 248. IF EP1(I)==EP2(I) THEN X=X+(ETX(I)-X)/C:Y=Y+(ETY(I)-Y)/C:RETURNЛ 249. P=EP1(I)Л 250. R=EP3(I)Л 251. P=P+(EP2(I)-P)/CЛ 252. EP1(I)=PЛ 253. X=ETX(I)+COS(P)*RЛ 254. Y=ETY(I)-SIN(P)*RЛ 255. IF C==1 THEN X=FLOOR((X-.5)/5)*5+3:Y=FLOOR((Y+2.5)/5)*5Л 256. RETURNЛ 257. @EF2Л 258. IF EP2(I)==127 THEN A=(A+.5)%8:RETURNЛ 259. P=EP1(I)Л 260. IF P>=C THEN P=C:A=EP2(I)Л 261. R=A-EP2(I) AND 7Л 262. IF !R THEN X=X+(ETX(I)-X)/P:Y=Y+(ETY(I)-Y)/P:RETURNЛ 263. A=A-(R<4)*2+1 AND 7Л 264. RETURNЛ 265. @EF3Л 266. Y=Y-EP3(I)Л 267. X=X+(ETX(I)-X)/CЛ 268. Y=Y+(ETY(I)-Y)/CЛ 269. P=(C-1)*2/EP1(I)-1Л 270. R=(1-P*P)*EP2(I)Л 271. Y=Y+RЛ 272. EP3(I)=RЛ 273. A=(1-ABS(P))*7.99Л 274. RETURNЛ 275. Л 276. @ES ′ЙЙЙ VARY A ENEMYЛ 277. Л 278. S=ES(I)+1Л 279. IF S<0 THEN S=-SЛ 280. C=SC(S)Л 281. IF !C THEN S=SP(S):C=SC(S)Л 282. ES(I)=SЛ 283. Z1=SX(S):Z2=EX(I):Z3=0:GOSUB @SZ:ETX(I)=ZЛ 284. Z1=SY(S):Z2=EY(I):Z3=1:GOSUB @SZ:ETY(I)=ZЛ 285. P=SP(S)Л 286. V=ETX(I)-EX(I)Л 287. W=ETY(I)-EY(I)Л 288. ON ET(I)%3 GOSUB @ES1,@ES2,@ES3Л 289. RETURNЛ 290. @ES1Л 291. EP1(I)=ATAN(W,-V)Л 292. EP2(I)=EP1(I)+P*PI()/4Л 293. EP3(I)=SQR(V*V+W*W)Л 294. RETURNЛ 295. @ES2Л 296. EP1(I)=(P-1)*GS+1Л 297. IF P<=0 THEN EP2(I)=127:RETURNЛ 298. IF !V AND !W THEN EP2(I)=EA(I):RETURNЛ 299. EP2(I)=DEG(ATAN(-W,V))/22.5+.5 AND 7Л 300. RETURNЛ 301. @ES3Л 302. EP1(I)=CЛ 303. EP2(I)=P*5Л 304. EP3(I)=0Л 305. RETURNЛ 306. Л 307. ′┝┸┝┸┝┸ ENEMY′S FIRE ┝┸┝┸┝┸Л 308. Л 309. @FI ′ЙЙЙ SET UP FIRE PATTERNЛ 310. Л 311. IF X<28 OR X>=228 OR Y<0 OR GW>0 THEN RETURNЛ 312. D=0Л 313. R=6Л 314. IF F AND 128 THEN D=ATAN(MX-X,MY-Y)Л 315. P=(F AND 32)/32Л 316. IF F AND 64 THEN P=P*10+10:D=D+(RND(P*2+1)-P)/128*PI() ELSE R=R+P*2Л 317. F=F AND 31Л 318. BEEP 31,0,64,X/2Л 319. @FI0Л 320. P=FP(F)Л 321. C=FC(F)Л 322. ON FT(F) GOTO @FF,@FI1,@FI2,@FI3,@FI4,@FI5,@FI6,@FI7Л 323. @FI1Л 324. R=R+P-C/2:FOR J=0 TO C:GOSUB @FF:R=R+1:NEXT:R=R-P-C/2-1:RETURNЛ 325. @FI2Л 326. D=D-P*C/2:FOR J=0 TO C:GOSUB @FF:D=D+P:NEXT:D=D-P*(C/2+1):RETURNЛ 327. @FI3Л 328. R=R+1:D=D-P:FOR J=0 TO C:GOSUB @FF:R=R-1:D=D+P:NEXT:R=R+C:D=D-P*C:RETURNЛ 329. @FI4Л 330. D=D-P*C/2:FOR J=0 TO C:GOSUB @FF:D=D+P:R=R+SGN(C/2-J-.5):NEXT:D=D-P*(C/2+1):R=R+1:RETURNЛ 331. @FI5Л 332. D=D-P*5:FOR K=0 TO 2:GOSUB @FI4:D=D+P*5:NEXT:D=D-P*10:RETURNЛ 333. @FI6Л 334. F$=F$(F):R=R-C/2:Z=C:FOR K=0 TO Z:C=VAL(MID$(F$,K,1)):GOSUB @FI2:R=R+1:NEXT:C=Z:R=R-C/2-1:RETURNЛ 335. @FI7Л 336. IF PH==48 THEN IF EN==1 THEN R=R+2:F=26 ELSE F=6-ENЛ 337. IF PH==49 THEN IF EN==3 THEN @FI8 ELSE F=39-EN*9Л 338. FOR I=0 TO 7Л 339. IF EP(I)>0 THEN X=EX(I):Y=EY(I):GOSUB @FI0Л 340. NEXTЛ 341. RETURNЛ 342. @FI8Л 343. X=EX(2)Л 344. Y=EY(2)Л 345. FOR I=0 TO 2Л 346. FOR J=0 TO 2Л 347. GOSUB @FFЛ 348. X=X+(EX(I)-X)/(3-J)Л 349. Y=Y+(EY(I)-Y)/(3-J)Л 350. NEXTЛ 351. NEXTЛ 352. RETURNЛ 353. Л 354. @FF ′ЙЙЙ SINGLE FIREЛ 355. Л 356. V=SIN(D)*300Л 357. W=COS(D)*300Л 358. SPOFS FI,X,YЛ 359. SPOFS FI,X+V,Y+W,320*GS/RЛ 360. FI=FI+1-(FI==83)*75Л 361. RETURNЛ 362. Л 363. ′┝┸┝┸┝┸ SET UP THE PHASE ┝┸┝┸┝┸Л 364. Л 365. @SS ′ЙЙЙ DESERIALIZE SCRIPTЛ 366. Л 367. SP=-1Л 368. SI=SL(PH)-1Л 369. GOSUB @SP:EN=ZЛ 370. GOSUB @SP:SN=ZЛ 371. FOR I=0 TO EN-1Л 372. GOSUB @SP:Z1=Z:Z2=128:Z3=0:GOSUB @SZ:EX(I)=ZЛ 373. GOSUB @SP:Z1=Z:Z2=80:Z3=1:GOSUB @SZ:EY(I)=ZЛ 374. GOSUB @SP:EC(I)=Z*GSЛ 375. GOSUB @SP:ES(I)=-Z-1Л 376. GOSUB @SP:ET(I)=ZЛ 377. GOSUB @SP:EP(I)=Z*2Л 378. GOSUB @SP:EF(I)=ZЛ 379. GOSUB @SP:EI(I)=Z*GSЛ 380. EJ(I)=10*GS+RND(EI(I))Л 381. EA(I)=0Л 382. SPSET I,ET(I)%3*8,ET(I)/3+2,0,0,2Л 383. SPHOME I,8,8Л 384. SPOFS I,0,0Л 385. NEXTЛ 386. FOR I=0 TO SN-1Л 387. GOSUB @SP:SX(I)=ZЛ 388. GOSUB @SP:SY(I)=ZЛ 389. GOSUB @SP:SC(I)=Z*GSЛ 390. GOSUB @SP:SP(I)=ZЛ 391. NEXTЛ 392. FOR I=9 TO 83Л 393. SPCHR I,40Л 394. SPANIM I,4,2Л 395. NEXTЛ 396. RETURNЛ 397. Л 398. @SP ′ЙЙЙ READ SCRIPTЛ 399. Л 400. SP=(SP+1)%32Л 401. IF !SP THEN SI=SI+1:CHRREAD(”SPU7”,SI),S$Л 402. Z=VAL(”&H”+MID$(S$,SP*2,2))Л 403. Z=Z-(Z>127)*256Л 404. RETURNЛ 405. Л 406. @SZ ′ЙЙЙ CALCULATE COORDSЛ 407. Л 408. P=Z1 AND 3Л 409. Z=(Z1-P)/4*5Л 410. IF P==0 THEN IF Z3 THEN Z=Z+100 ELSE Z=Z+128Л 411. IF P==2 THEN Z=Z+Z2Л 412. IF P==3 THEN IF Z3 THEN Z=Z+100 ELSE Z=Z+MXЛ 413. IF P!=1 THEN RETURNЛ 414. IF Z3 THEN @SZ1Л 415. P=Z+68Л 416. IF P<38 THEN P=38Л 417. R=Z+188Л 418. IF R>218 THEN R=218Л 419. GOTO @SZ2Л 420. @SZ1Л 421. P=Z+60Л 422. IF P<10 THEN P=10Л 423. R=Z+140Л 424. IF R>100 THEN R=100Л 425. @SZ2Л 426. Z=P+RND(R-P+1)Л 427. RETURNЛ 428. Л 429. @SI ′ЙЙЙ INITIALIZE GAMEЛ 430. Л 431. CLSЛ 432. SPCLRЛ 433. FOR I=0 TO 7Л 434. EP(I)=0Л 435. NEXTЛ 436. SPSET 8,36,7,0,0,3Л 437. SPHOME 8,8,8Л 438. SPCOL 8,4,4,8,8,0,1Л 439. FOR I=9 TO 83Л 440. SPSET I,40,6,0,0,2Л 441. SPHOME I,8,8Л 442. SPCOL I,7,7,2,2,0,1Л 443. NEXTЛ 444. FOR I=84 TO 91Л 445. SPSET I,44,7,0,0,2Л 446. SPHOME I,8,8Л 447. SPCOL I,6,6,4,4,0,2Л 448. NEXTЛ 449. FOR I=92 TO 99Л 450. SPSET I,24,6,0,0,3Л 451. SPHOME I,8,8Л 452. NEXTЛ 453. SPSET 8,36,7,0,0,3Л 454. SPHOME 8,8,8Л 455. SPCOL 8,4,4,8,8,0,1Л 456. Л 457. MC=3Л 458. MD=65Л 459. MV=0Л 460. MF=0Л 461. MU=84Л 462. PH=-1Л 463. EN=0Л 464. FI=9Л 465. GS=3Л 466. GW=0Л 467. GY=0Л 468. GZ=96Л 469. TM=0Л 470. TP=0Л 471. BGMPLAY 0,128Л 472. Л 473. RETURNЛ 474. Л 475. ′┝┸┝┸┝┸ WAITING SCREEN ┝┸┝┸┝┸Л 476. Л 477. @OP ′ЙЙЙ TITLEЛ 478. Л 479. CLSЛ 480. GCLSЛ 481. SPCLRЛ 482. RESTORE @OPЛ 483. FOR I=0 TO 7Л 484. READ C,D$Л 485. COLOR CЛ 486. LOCATE 6,5+IЛ 487. ? D$Л 488. NEXTЛ 489. FOR I=0 TO 4Л 490. READ C,D$Л 491. COLOR CЛ 492. LOCATE 15,8+IЛ 493. ? D$Л 494. NEXTЛ 495. COLOR 14Л 496. LOCATE 8,14Л 497. ? ”Version ”;V$Л 498. COLOR 0Л 499. LOCATE 8,17Л 500. ? ”PRESS [A] BUTTON”Л 501. @OP1Л 502. VSYNC 1Л 503. IF BTRIG() AND 16 THEN GT=(BUTTON() AND 768)!=0:RETURNЛ 504. GOTO @OP1Л 505. DATA 7,” ┝┿┿┿┿┰ ”,3,”┝┿┸ ┥┿┰”,3,”┿┿ ┿┿”Л 506. DATA 0,”┿┿ ┿┿”,0,”┥┿ ┿┸”,3,” ┥┰ ┝┸ ”Л 507. DATA 3,”┰ ┿ ┿ ┝”,7,”┿┿┿ ┿┿┿”,7,”┝┿┰ ┝┿┰ ┝┿┰”Л 508. DATA 3,”┿ ┥ ┿ ┿ ┿ ┥”,0,”┥┿┰ ┿ ┿ ┿ ”Л 509. DATA 3,”┰ ┿ ┿ ┿ ┿ ┝”,7,”┥┿┸ ┥┿┸ ┥┿┸”Л 510. Л 511. @ED ′ЙЙЙ GAME OVERЛ 512. Л 513. IF MC<-1 THEN BGMSTOP:RETURNЛ 514. LOCATE 7,15Л 515. ? ”PLAY TIME ”;Л 516. T=TMЛ 517. GOSUB @GTЛ 518. IF PH<50 THEN BGMPLAY 6:LOCATE 11,11:? ”GAME OVER”:GOTO @ED1Л 519. COLOR 12Л 520. LOCATE 8,10Л 521. ? ”CONGRATULATIONS!”Л 522. LOCATE 4,12Л 523. ? ”YOU COMPLETED ALL PHASES”Л 524. COLOR 0Л 525. MV=3Л 526. BGMPLAY 4Л 527. @ED1Л 528. GOSUB @ENЛ 529. GOSUB @GGЛ 530. BT=BTRIG()Л 531. IF PH<50 THEN @ED2Л 532. SPCHR FI,24Л 533. SPANIM FI,9,2,1Л 534. SPOFS FI,RND(208)+24,RND(208)-8Л 535. FI=FI+1-(FI==83)*75Л 536. IF MY>-8 THEN MY=MY+MV:MV=MV-.25:SPOFS 8,MX,MY:BT=0Л 537. @ED2Л 538. VSYNC 1Л 539. IF BT AND 16 THEN RETURNЛ 540. GOTO @ED1Л 541. Л 542. ′┝┸┝┸┝┸ INITIALIZE ┝┸┝┸┝┸Л 543. Л 544. @INЛ 545. Л 546. BGCLRЛ 547. BGMSTOPЛ 548. B=SYSBEEPЛ 549. SYSBEEP=0Л 550. LOAD ”BGF:SBFT_E04”,0Л 551. SYSBEEP=BЛ 552. Л 553. SP=-1Л 554. SI=-1Л 555. FOR I=0 TO 49Л 556. GOSUB @SP:SL(I)=Z+(Z<0)*256Л 557. NEXTЛ 558. FOR I=0 TO 31Л 559. GOSUB @SP:FT(I)=Z/16 OR 0:FC(I)=Z%16Л 560. GOSUB @SP:FP(I)=Z/32Л 561. IF FT(I)==6 THEN F$=””:FOR J=0 TO FC(I):GOSUB @SP:F$=F$+STR$(Z):NEXT:F$(I)=F$Л 562. NEXTЛ 563. FOR I=0 TO 7Л 564. FOR J=0 TO 3+(I<5)*3Л 565. GOSUB @SP:OV(I,J)=ZЛ 566. NEXTЛ 567. NEXTЛ 568. Л 569. BGFILL 0,0,0,3,23,”C001”*3+”C384”Л 570. BGFILL 0,28,0,31,23,”C383”+”C001”*3Л 571. Л 572. BGMSETD 128,@ONЛ 573. RETURNЛ 574. Л 575. ′┝┸┝┸┝┸ BGM MML DATA ┝┸┝┸┝┸Л 576. Л 577. @ONЛ 578. Л 579. DATA ”T120$0=127$1=0$2=127$3=0$4=0$5=33$6=24$7=39”Л 580. DATA ”:1@128O2L8[@V$0C@V$1F+]”Л 581. DATA ”:2O2L16[@V$2@$5AEA<C>AE<AC>A<EC>A<C>E<GA>”Л 582. DATA ”AEA<C>AE<ACAGFD<C>BGC>”Л 583. DATA ”FCFAFC<F>AF<C>AFAC<EF>”Л 584. DATA ”GDGBGD<GD>GB<EA>GB<GB>]”Л 585. DATA ”:3L8O3[@V$3@$6[RAAR16AAAL16EFGL8]2”Л 586. DATA ”RFFR16FFFL16DEFL8”Л 587. DATA ”RGGR16GGGL16EFGL8]”Л 588. DATA ”:4L8O3[@V$3@$6[REER16EEEC.]2”Л 589. DATA ”RCCR16CCC>A.<RDDR16DDD>B.<]”Л 590. DATA ”:5L1[@V$4@$7EECD]:6L1[@V$4@$7CC>AB<]”Л 591. Л 592. ′─────────────────────── EOFЛ
※コードのHTML生成にPTC2HTMLを使用しています。
SPU0 | |
SPU7 | |
COL1 |