A | 剣を振った時のタイミングのズレ |
C | ハート残り |
F | 敵の出現パターン |
G | 剣の向き |
H | 1/8拍のフレーム数 |
I,J,R | ゲーム内ループカウンタ |
K | 敵生成判定用 |
L | 汎用ループカウンタ |
M$ | 文字描画用 |
N | 1/4拍のフレーム数 |
P | スコア |
Q | 定数1.5 |
S | 剣を振るアニメーション時間 |
V | タイミング評価の表示位置 |
X,Y | 敵の移動軌跡設定用、他 |
Z | 雑用 |
ACLS:BGFILL 0,0,0,24,14,"021B023B"WHILE 1CLS
BGOFS 0,,,512LOCATE ,29FOR L=0TO 39Y=L DIV 10
SPSET L,32+(Y==2)*2238Z=1+(L<9)SPSCALE L,Z,Z
SPOFS L,L MOD 10*16+72,Y*16+(Y>2)*112+31NEXT
Q=1.5?"リズムにあわせて ユーレイをやっつけろ! けんをふる やりなおし";
N=12C=10SPCHR 8,491SPOFS 8,64,104SPCHR 9,144
P=0G=0R=0V=0SPHOME 9,8,32SPOFS 9,80,120REPEAT
M$="BPM "+STR$(0OR 900/N)Z=10GOSUB@M:REPEAT
F=RND(256)AND ASC(MID$("UWw",R/4,1))Z=63
FOR L=0TO 2F=F*((F AND Z)!=Z)Z=Z*2NEXT'@OBONO
UNTIL F:F=F*(R>1)H=N/2OR 0K=1FOR I=0TO 15
FOR J=1TO N:IF!SPCHK(9)*(31AND BUTTON(2))THEN
A=ABS(J-H)G=!G:S=N:IF(A<N/3)*(K>>8AND F)THEN
BEEP 24S=4A=A+(A<3)P=P+(0OR 10/A)F=K>>8XOR F
SPANIM I-8,0,-N*A,232,G*272-32SPROT 9,90V=12
ELSE BEEP 40,,32:ENDIF:SPANIM 9,4,-S,G*180
ENDIF:SPCHR 8,491-G*2LOCATE V,19IF V>6 THEN
V=V-1?MID$(" GOOD NICE POOR ",A*5-5,6)ENDIF
M$="SCORE "+STR$(P)Z=30GOSUB@M:IF J==H THEN
Z=!(I MOD 4)BEEP 26+!(4AND I),,(Z||I==10)*64
FOR L=10TO Z*39SPANIM L,5,1,Q/2,Q,-8,1,1NEXT
X=RND(192)+152Y=RND(129)-64IF F AND K THEN
BEEP 29SPCHR I,1024SPOFS I,96+X*2,104+Y*2
SPANIM I,0,-N*12,96-X,104-Y:ENDIF:ENDIF:VSYNC
NEXT:K=K*2NEXT:R=(R+1)MOD 32N=N-!R*(N>4)
C=C-!!F:SPCHR 20+C,2268UNTIL!C:BEEP 11REPEAT
UNTIL BUTTON(2)==32WEND@M:FOR L=0TO LEN(M$)-1
SPCHR L+Z,ASC(MID$(M$,L,1))+2048NEXT:RETURN