- ’┌──────────────────┐
- ’│GAME5 │
- ’│ カクトウ ケ゛ーム │
- ’└──────────────────┘
- GOSUB @INIT
- @START
- GOSUB @TITLE
- ’--- MAIN
- @MAIN
- INOT=(I+1)%2 ’アイテノ ID
- NNOT=AN+INOT ’アイテノ スフ゜ライトNO.
- XNOT=SPGETV(NNOT,VX)
- N=AN+I
- GOSUB @VPOP
- X1=1-(I*2)
- BT=0
- IF I==0 THEN BT=BUTTON()
- IF I==1 AND RND(2)==0 THEN BT=POW(2,RND(8))
- GOSUB @JUMP
- GOSUB @PUNCH
- GOSUB @DAMAGE
- IF (BT AND 1) THEN KEN=16
- IF (BT AND 2) THEN KEN=40
- IF (BT AND 4) THEN X=X-1
- IF (BT AND 8) THEN X=X+1
- IF ABS(X-XNOT)<128 THEN X=X-X1 ’チカツ゛キスキ゛
- IF X<32 THEN X=32
- IF X>224 THEN X=224
- SPOFS N,X,Y
- GOSUB @HITCHK
- GOSUB @VPUSH
- VSYNC 1
- IF HP<=0 THEN @GOVER
- I=(I+1)%2
- GOTO @MAIN
- ’--- シュウリョウ
- @GOVER
- BGMSTOP
- SPCHR AN+I,320+16*2
- A=0
- A1=-1
- IF I==1 THEN A1=-A1
- @GOVER2
- A=A+A1
- SPANGLE AN+I,A
- VSYNC 1
- IF A>=-45 AND A<=45 THEN @GOVER2
- BGMPLAY 4
- WAIT 180
- GOTO @START
- ’---テ゛-タ ヨミコミ
- @VPOP
- X =SPGETV(N,VX)
- Y =SPGETV(N,VY)
- HP =SPGETV(N,VHP)
- JMP=SPGETV(N,VJMP)
- PCH=SPGETV(N,VPCH)
- KEN=SPGETV(N,VKEN)
- DMG=SPGETV(N,VDMG)
- RETURN
- ’---テ゛-タ カクノウ
- @VPUSH
- SPSETV N,VX ,X
- SPSETV N,VY ,Y
- SPSETV N,VHP ,HP
- SPSETV N,VJMP,JMP
- SPSETV N,VPCH,PCH
- SPSETV N,VKEN,KEN
- SPSETV N,VDMG,DMG
- RETURN
- ’--- シ゛ャンフ゜
- @JUMP
- IF JMP THEN @JUMP2
- IF DMG THEN RETURN
- IF Y<JY THEN Y=Y+JMPMAX
- IF Y>JY THEN Y=JY:JMP=0
- IF (BT AND 16) THEN @JUMP3
- RETURN
- ’--- シ゛ャンフ゜ スタ-ト
- @JUMP3
- JMP=JMPMAX
- ’BEEP 8
- RETURN
- ’--- シ゛ャンフ゜ チュウ
- @JUMP2
- Y=Y+(JMPHF-JMP)
- JMP=JMP-0.5
- IF JMP<0 THEN JMP=0
- RETURN
- ’--- アタリハンテイ
- @HITCHK
- X2=X1*80
- IF PCH<PCHHF THEN X2=X2/2
- KX=X+X2 ’ケン ノ サ゛ヒョウ
- KY=Y+KEN
- SPOFS BN+I,KX,KY
- IF SPCHK(CN+I)==0 THEN SPOFS CN+I,999,999
- IF DMG THEN RETURN
- IF PCH<PCHHF THEN RETURN
- IF ABS(KX-XNOT)>64 THEN RETURN
- DMGNOT=SPGETV(NNOT,VDMG)
- IF DMGNOT THEN RETURN ’アイテカ゛ タ゛メーシ゛チュウ
- KENNOT=SPGETV(NNOT,VKEN)
- IF ABS(KEN-KENNOT)<8 THEN @DEFEND
- SPSETV NNOT,VDMG,8 ’コウケ゛キ ヒット
- RETURN
- ’--- ホ゛ウキ゛ョ サレタ
- @DEFEND
- SPOFS CN+I,KX,KY
- KX2=KX+RND(60)-30
- KY2=KY+RND(60)-30
- PCH=PCHMAX/2
- SPOFS CN+I,KX2,KY2,40
- BEEP 8
- RETURN
- ’--- タ゛メーシ゛
- @DAMAGE
- IF DMG==0 THEN RETURN
- X=X-X1
- DMG=DMG-1
- IF DMG THEN RETURN
- HP=HP-1
- IF HP<0 THEN HP=0
- GOSUB @PRTHP2
- RETURN
- ’--- コウケ゛キ
- @PUNCH
- IF PCH THEN @PUNCH2
- IF DMG THEN RETURN
- IF (BT AND 32)==0 THEN RETURN
- PCH=PCHMAX
- BEEP 1
- SPCHR N,320+16
- RETURN
- ’--- コウケ゛キ チュウ
- @PUNCH2
- X=X+(PCH-PCHHF)*X1
- IF PCH<PCHHF THEN SPCHR N,320
- PCH=PCH-1
- IF PCH<0 THEN PCH=0
- RETURN
- ’--- タイリョク ヒョウシ゛
- @PRTHP
- HX=(I*16)+2
- COLOR 0
- LOCATE HX,0
- PRINT NAM$(I)
- COLOR 4
- FOR TMP=0 TO 10
- LOCATE TMP+HX,1
- PRINT ”┿”;
- NEXT
- @PRTHP2
- HX=(I*16)+2
- COLOR 13
- FOR TMP=10 TO HP STEP -1
- LOCATE TMP+HX,1
- PRINT ”┿”;
- NEXT
- RETURN
- ’--- ショキカ
- @INIT
- CLEAR
- ACLS
- PRINT ” ショキカ チュウ”
- DIM NAM$(2)
- NAM$(0)=”YOU”
- NAM$(1)=”CPU”
- PAL=2
- C2=0
- JIMEN=20
- JY=JIMEN*8-64
- AN=4 ’カラタ゛ スフ゜ライトNO.
- BN=2 ’フ゛キ スフ゜ライトNO.
- CN=0 ’ヒハ゛ナ スフ゜ライトNO.
- JMPMAX=10
- PCHMAX=9
- PCHHF=FLOOR(PCHMAX/2)
- JMPHF=FLOOR(JMPMAX/2)
- NUM=64:GOSUB @CHRZOOM
- NUM=81:GOSUB @CHRZOOM
- NUM=88:GOSUB @CHRZOOM
- NUM=16:GOSUB @CHRZOOM
- W=64 ’キャラクタ サイス゛
- H=64
- VX=0 ’サ゛ヒョウ
- VY=1 ’
- VHP=2 ’タイリョク
- VJMP=3 ’シ゛ャンフ゜
- VPCH=4 ’ハ゜ンチ
- VKEN=5 ’ケン ノ イチ
- VDMG=6 ’タ゛メーシ゛
- FOR I=0 TO 1
- N=AN+I
- PAL=2+(I*2)
- SPSET N,320,PAL,I,0,1,W,H
- SPHOME N,W/2,H/2
- SPSCALE N,200
- N=BN+I
- SPSET N,368,PAL,I,0,1,W,H
- SPHOME N,W/2,H/2
- SPSCALE N,100
- N=CN+I
- SPSET N,20,PAL,I,0,1
- SPHOME N,8,8
- SPSCALE N,200
- SPANIM N,4,20
- NEXT
- ’--- ハイケイ
- GCLS
- GPAGE 0
- FOR Y=0 TO JY-1
- C=242+(5*Y/JY)
- GLINE 0,Y,255,Y,C
- NEXT
- J=0
- FOR Y=JY TO 191
- J=FLOOR(4*(Y-JY)/(191-JY))+1
- C = 247-(J*36)-(J*6)
- GLINE 0,Y,255,Y,C
- NEXT
- Y=JY
- C=0
- FOR J=0 TO 13
- GLINE 0,Y,255,Y,C
- Y=Y+J
- NEXT
- FOR X=0 TO 128 STEP 10
- GLINE 128+X,JY,128+X*5,191,C
- GLINE 128-X,JY,128-X*5,191,C
- NEXT
- RETURN
- ’--- キャラクタヲ カクタ゛イ
- @CHRZOOM
- GCLS
- C1=(NUM % 64)*4
- S$=”SPU”+STR$(FLOOR(NUM/64))
- ’--- GPUTCHR
- FOR Y=0 TO 8*4 STEP 8*4
- FOR X=0 TO 8*4 STEP 8*4
- GPUTCHR X,Y,S$,C1,PAL,4
- C1=C1+1
- NEXT
- NEXT
- ’--- CHRSET
- FOR SY=0 TO 63 STEP 8
- FOR SX=0 TO 63 STEP 8
- BF$=””
- FOR Y=0 TO 7
- FOR X=0 TO 7
- COL=GSPOIT(SX+X,SY+Y)
- BF$=BF$+HEX$(COL AND &HF)
- NEXT
- NEXT
- CHRSET ”SPU5”,C2,BF$
- C2=C2+1
- NEXT
- NEXT
- RETURN
- ’--- タイトル
- @TITLE
- BGMSTOP
- CLS
- FOR I=0 TO 1
- N=AN+I
- X=((128+64)*I)+32
- Y=JY
- HP=11
- KEN=16
- DMG=0
- PCH=0
- SPOFS N,X,Y
- SPCHR N,320
- GOSUB @VPUSH
- SPOFS BN+I,999,999
- SPOFS CN+I,999,999
- NEXT
- WAIT 20
- COLOR 0
- RESTORE @TITLE2
- Y=3
- @TITLE1
- READ A$
- IF A$==”END” THEN @TITLE3
- GOSUB @PNTSUB
- Y=Y+1
- GOTO @TITLE1
- @TITLE2
- DATA ” ┿ ┝┿┿ ┿ ┿ ”
- DATA ”┿┿┿┿ ┸ ┿ ┿蒻 ┿┿┿”
- DATA ” ┿ ┿ ┝┸ ┿┥ ┿ ┿”
- DATA ”┝┸┝┸ ┝┸ ┿ ┝┸”
- DATA ””
- DATA ” ┝┸ ┫ ┝┸ ”
- DATA ”┝┿┿┿ ┝┸ ”
- DATA ”┸ ┿ ┿┿┿ ┿ ┿”
- DATA ” ┝┸ ┿┿┿┿”
- DATA ”KAKUTOU GAME”
- DATA ””
- DATA ”HOW TO PLAY”
- DATA ””
- DATA ”[A]BUTTON:シ゛ャンフ゜”
- DATA ”[B]BUTTON:コウケ゛キ”
- DATA ”[←→]BUTTON:イト゛ウ”
- DATA ”[↑↓]BUTTON:ケン カマエ”
- DATA ””
- DATA ”PUSH ANY BUTTON”
- DATA ””
- DATA ”END”
- ’--- オシ゛キ゛
- @TITLE3
- A=0
- A1=1
- @TITLE4
- A=A+A1
- IF A<=0 OR A>=30 THEN A1=-A1
- SPANGLE AN+0,A
- SPANGLE AN+1,-A
- VSYNC 2
- BT=BUTTON()
- IF BT==0 THEN @TITLE4
- SPANGLE AN+0,0
- SPANGLE AN+1,0
- CLS
- J=20
- FOR I=0 TO 8
- BEEP 58
- WAIT J+5
- J=J/2
- NEXT
- FOR I=0 TO 1
- GOSUB @PRTHP
- NEXT
- BGMPLAY 1
- I=0
- RETURN
- ’--- モシ゛ ヒョウシ゛
- @PNTSUB2
- COLOR 3
- @PNTSUB3
- Y=96/8
- @PNTSUB
- X=16-(LEN(A$)/2)
- LOCATE X,Y
- PRINT A$
- RETURN
- ’┌─────────────────────────┐
- ’│オワリ │
- ’└─────────────────────────┘