- ’┌──────────┐
- ’│タ゛ッシュツケ゛-ム│
- ’└──────────┘
- 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