縦スクロールのアクションゲームだ。下からせまってくるトゲトゲに刺される前にどんどん上に逃げていこう。
上から転がってくる火の玉にぶつかってもゲームオーバー。火の玉の動きには法則性があるので、うまく軌道を予測して逃げ切ろう。
操作は十字ボタンで移動。ハシゴの下で↑ボタンを押せば上に登れるけど、うかつに壁(天井)に頭をぶつけると火の玉の出現率が上がってしまうぞ!
&H010D
は普通に書けば、269……?
- ’┌──────────┐
- ’│タ゛ッシュツケ゛-ム│
- ’└──────────┘
- VISIBLE 1,1,1,1,1,1
- CLS
- GPAGE 0:GCOLOR 0:GCLS
- SPPAGE 0:SPCLR
- BGPAGE 0
- BGOFS 0,0,0
- BGOFS 1,0,0
- ’---
- CLEAR
- WMAX=3:EMAX=16:HI=1000
- DIM W(WMAX,4),OX(4),OY(4)
- DIM E(EMAX,8)
- _X=0:_Y=1:_V=2:_S=3:’_____
- ’
- DATA 0,0,1,0,0,1,1,1
- FOR I=0 TO 3
- READ OX(I),OY(I)
- NEXT
- ’---カヘ゛
- DATA &H010D,&H010E,&H012D,&H012E
- DATA &H0001,&H1001,&H2001,&H3001
- DATA &H0002,&H1002,&H0002,&H1002
- FOR I=0 TO WMAX-1
- FOR J=0 TO 3
- READ W(I,J)
- NEXT
- NEXT
- ’---ショキカ
- PR=2:REQ=0:FLW=-1
- ’┌───────┐
- ’│メインル-フ゜│
- ’└───────┘
- @MLOOP
- OLDB=B:B=BUTTON()
- IF FLW==REQ GOTO @JPFLOW
- FLW=REQ
- ON FLW GOSUB @TINIT,@GINIT,@OVINIT
- @JPFLOW
- ON FLW GOSUB @TITLE,@GAME,@GOVER
- VSYNC 1
- GOTO @MLOOP
- END
- ’┌────┐
- ’│ケ゛-ム│
- ’└────┘
- @GAME
- GOSUB @PLAYER
- GOSUB @PUTSTAT
- GOSUB @WALL
- GOSUB @ENEMY
- RETURN
- ’---
- @PUTSTAT
- LOCATE 0,0:PRINT”1P:”;OY;”m”
- COLOR 13
- LOCATE 10,0:PRINT”HI:”;HI;”m”
- COLOR 0
- RETURN
- ’---
- @ENEMY
- ’---シ゛カンテ゛ハッセイ
- ET=ET-1
- IF ET!=0 GOTO @ELOOP
- GOSUB @EBORN
- ’---
- @ELOOP
- CX=PX+7
- FOR I=0 TO ECNT-1
- IF E(I,_S)==0 GOTO @ENEXT
- ’---テキイト゛ウ
- EX=E(I,_X):V=E(I,_V)
- EY=E(I,_Y)+OY
- IF E(I,_S)==1 GOTO @EMOVE
- ’---オリテルサイチュウ
- E(I,_S)=E(I,_S)-1
- EY=EY+1
- GOTO @EPUT
- ’---サユウイト゛ウ
- @EMOVE
- EX=EX+V
- IF EX<16 THEN EX=16:V=-V
- IF EX>223 THEN EX=224:V=-V
- E(I,_V)=V
- ’---アシモトカクニン
- X=((EX+8)/8) AND 63
- Y=((EY+16-OY)/8) AND 63
- BGREAD(1,X,Y),N,C,H,V
- IF N==1 GOTO @EPUT
- ’---オリル
- E(I,_S)=32+1
- ’---ヒョウシ゛
- @EPUT
- SPOFS I+10,EX,EY
- E(I,_X)=EX
- E(I,_Y)=EY-OY
- ’---シュウリョウカクニン
- IF EY>192 THEN E(I,_S)=0
- ’---アタリハンテイ
- IF PY!=EY GOTO @ENEXT
- IF CX<EX GOTO @ENEXT
- IF CX>EX+15 GOTO @ENEXT
- ’---タ゛メ-シ゛
- DM=DM+1
- ’---
- @ENEXT
- NEXT
- RETURN
- ’---
- @WALL
- ST=ST-1
- IF ST>0 GOTO @MOVWALL
- ’---テキヲフヤス
- ST=1000
- ECNT=ECNT+1
- IF ECNT>EMAX THEN ECNT=EMAX
- ’---
- @MOVWALL
- HY=HY+0.5
- BGOFS 0,0,HY AND 511
- BGOFS 1,0,(511-OY) AND 511
- ’--- ヤラレタ?
- IF DM>0 GOTO @PDEAD
- IF HY<160 THEN RETURN
- @PDEAD
- COLSET ”BG”,0,”FF0000”
- REQ=2
- RETURN
- ’---
- @PLAYER
- ’---シ゛ョウケ゛イト゛ウチュウ?
- IF MY==0 GOTO @MOVP
- V=1
- MY=MY-V
- OY=OY+V:IF OY>HI THEN HI=OY
- HY=HY-V
- IF HY<0 THEN HY=0
- IF MY>0 THEN RETURN
- RETURN
- ’---イト゛ウ
- @MOVP
- IF B AND 1 GOTO @MOVUP
- @MOVPLR
- VX=0
- IF B AND 4 THEN PD=2:VX=VX-1
- IF B AND 8 THEN PD=0:VX=VX+1
- PX=PX+VX*2
- IF PX<16 THEN PX=16
- IF PX>223 THEN PX=224
- ’---
- @PEND
- SPOFS 0,PX,PY
- SPCHR 0,PD*2+128
- IF SPCHK(1) THEN RETURN
- SPOFS 1,-32,-32
- SPANGLE 1,0
- RETURN
- ’---ノホ゛レタラノホ゛ル
- @MOVUP
- X=((PX+8)/8) AND 63
- Y=((PY-8-OY)/8) AND 63
- IF BX==X GOTO @MOVPLR
- BX=X
- BGREAD(1,X,Y),N,C,H,V
- IF N!=1 GOTO @UPOK
- ’---フ゛ツカッタ
- SPOFS 1,PX+8,PY-8
- SPANGLE 1,270,15
- BEEP 11
- GOSUB @EBORN
- GOTO @MOVPLR
- ’---
- @UPOK
- MY=32:PD=3:BX=-1:VX=0
- GOSUB @PUTLINE
- GOTO @PEND
- ’---アタラシイマッフ゜ノセイセイ
- @PUTLINE
- SX=SX+(RND(3)*2)
- Y=(BY-2) AND 63
- FOR X=2 TO 29 STEP 2
- N=1:SX=FLOOR(SX%28)
- IF X!=SX+2 GOTO @SKPWALL
- N=2:SX=SX+(RND(8)*2)
- @SKPWALL
- C=0:GOSUB @PUTWALL
- NEXT
- BY=BY-4:BY=BY AND 63
- ’---テキノハッセイ
- @EBORN
- ET=RND(30)+30
- I=0
- @EBORNLP
- IF E(I,_S)==0 GOTO @ESET
- I=I+1
- IF I<EMAX GOTO @EBORNLP
- RETURN
- ’---
- @ESET
- E(I,_S)=1
- X=RND(256-32)+16
- V=SGN(PX-X)
- IF V==0 THEN V=1
- E(I,_X)=X
- E(I,_V)=V
- Y=FLOOR(OY/32)*32
- E(I,_Y)=-Y
- RETURN
- ’---
- @GINIT
- CLS
- BGPAGE 0
- BGCLIP 0,0,31,23
- BGOFS 0,0,0
- BGOFS 1,0,0
- ’--- キャラテイキ゛
- B$=”EEEEEEEE”
- C$=”EFFFFFFF”
- D$=”EFDDDDDD”
- CHRSET ”BGU0”,1,B$+C$+D$+D$+D$+D$+D$+D$
- C$=”07700000”
- D$=”07777777”
- CHRSET ”BGU0”,2,C$+D$+D$+C$+C$+D$+D$+C$
- C$= ”000F0000”
- C$=C$+”000F1000”
- C$=C$+”00FFF100”
- C$=C$+”00FFF100”
- C$=C$+”0FFFFF10”
- C$=C$+”0FFFFF10”
- C$=C$+”FFFFFFF1”
- C$=C$+”FFFFFFF1”
- CHRSET ”BGU0”,3,C$
- ’--- カヘ゛カ゛ワ
- C=0
- FOR Y=0 TO 63 STEP 2
- N=1:X=0:GOSUB @PUTWALL
- FOR X=2 TO 28 STEP 2
- N=0:GOSUB @PUTWALL
- NEXT
- N=1:X=30:GOSUB @PUTWALL
- NEXT
- FOR Y=0 TO 63
- FOR X=0 TO 31
- BGPUT 0,X,Y,&H000,0,0,0
- NEXT
- NEXT
- ’--- トケ゛カ゛ワ
- FOR X=0 TO 31
- BGPUT 0,X,32,&H3,0,0,0
- NEXT
- FOR Y=1 TO 31
- FOR X=0 TO 31
- BGPUT 0,X,32+Y,&H327,12,0,0
- NEXT
- NEXT
- ’---フ゜レイヤ-アニメ
- SPSET 0,134,2,0,0,PR
- SPANIM 0,2,8,0
- SPOFS 0,PX,PY
- SPSET 1,48,0,0,0,0
- SPANIM 1,4,2,0
- SPOFS 1,PX,PY
- ’---テキアニメ
- FOR I=0 TO EMAX-1
- E(I,_S)=0
- SPSET I+10,248,2,0,0,PR
- SPANIM I+10,4,4,0
- SPOFS I+10,-32,-32
- NEXT
- ’---
- SP=5:SX=0
- BY=0:OY=0
- PX=120:PY=96:VX=0
- PD=3:MY=0:DM=0
- HY=0:ST=1000:ECNT=0
- ’---スタ-ト
- GOSUB @PUTLINE
- VISIBLE 1,1,1,1,1,1
- BGMPLAY 11
- LOCATE 9,23
- PRINT ”П↑ノホ゛ル П←→イト゛ウ”;
- RETURN
- ’---
- @PUTWALL
- FOR M=0 TO 3
- GOSUB @PUT1
- NEXT
- RETURN
- ’
- @PUT1
- I=W(N,M):H=0:V=0
- IF I AND &H1000 THEN H=1
- IF I AND &H2000 THEN V=1
- I=I AND &H3FF
- BGPUT 1,X+OX(M),Y+OY(M),I,C,H,V
- RETURN
- ’┌────┐
- ’│タイトル│
- ’└────┘
- @TINIT
- CLS
- VISIBLE 1,1,0,0,1,1
- BGMPLAY 22
- SPSET 0,48,0,0,0,0
- SPOFS 0,230,32
- SPANIM 0,4,4,0
- LOCATE 0,5
- COLOR 11:PRINT” ┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸”
- COLOR 9 :PRINT” ┝┸ ┝┸ ┝┸ ┝┸┝┸┝┸┝┸┝┸”
- COLOR 0 :PRINT” ┝┿┿┸┝┿┿┸┝┸ ┝┿┿┸┝┿┿┸┝┿┿┸”
- COLOR 9 :PRINT” ┝┸ ┝┸┝┸ ┝┸┝┸┝┸ ┝┸”
- COLOR 11:PRINT” ┝┿┿┸┝┿┿┸┝┿┿┸┝┸┝┸┝┸ ┝┿┿┸”
- COLOR 13
- LOCATE 12,1:PRINT”HI:”;HI;”m”
- COLOR 0
- LOCATE 8,13
- PRINT ”PUSH ANY BUTTON”
- LOCATE 3,22
- PRINT ”(C)2011 SmileBoom Co.Ltd.”
- RETURN
- ’---
- @TITLE
- IF B==0 THEN RETURN
- REQ=1
- VISIBLE 1,1,0,0,0,0
- BGMSTOP
- RETURN
- ’┌─────────┐
- ’│ケ゛-ムオ-ハ゛-│
- ’└─────────┘
- @OVINIT
- VISIBLE 1,1,0,0,1,0
- CLS
- BGMPLAY 6
- SPCHR 0,128
- SPANIM 0,8,2,0
- LOCATE PX/8,11
- PRINT”ウヘッ!”
- LOCATE 10,20
- PRINT”タ゛ッシュツ シッハ゜イ”
- RETURN
- ’---
- @GOVER
- IF BGMCHK() THEN RETURN
- COLSET ”BG”,0,”000000”
- SPCLR
- REQ=0
- RETURN