B | スライドパッド入力量 |
C | 引っかかったバーの配列番号(-1の時は引っかかっていない) |
D | バーの左右移動量 |
E[],F[] | バーの座標 |
G | 重力加速度 |
H | ワイヤーの長さ |
I | 汎用ループカウンタ |
K | バー新規生成時のX座標 |
L | バー新規生成用カウンタ |
M,N | ワイヤーの射出方向、他 |
P | スコア |
Q[] | バーの左右移動量制御用 |
R[] | バーの左右振れ幅 |
S | 上方向累積スクロール量 |
T,U | ワイヤーの先端座標 |
V,W | プレイヤーの移動量 |
X,Y | プレイヤーの座標 |
Z | 雑用 |
ACLS:LOCATE,29?"かくど ちょうせい ワイヤー のばす やりなおし";
BGSCREEN 1,25,17BGFILL 1,0,0,24,16,"02CE1292"
DIM E[8],F[8],Q[8],R[8]GPRIO 0SPSET 16,3388
WHILE 1FOR I=0TO 15SPSET I,1246SPSCALE I,2,1
IF I<8THEN F[I]=256 ELSE SPCOLOR I,1<<31
SPCOL I,0,4,96,8NEXT:SPSET 17,617BGMPLAY 8
X=200Y=0V=0W=0C=-1K=152L=0S=0P=0G=0REPEAT
Z=MAX(S/8192,(64-Y)/32)Y=Y+Z:U=U+Z:L=L+Z
S=S+Z:BGOFS 1,,32-S MOD 32,1024FOR I=0TO 7
D=COS(Q[I])*R[I]INC Q[I],1/64T=T+D*(I==C)
INC E[I],D:INC F[I],Z:SPOFS I,E[I],F[I],1
SPOFS I+8,E[I]+4,F[I]+4,1023NEXT:V=V*63/64
W=(W+G)*63/64X=X+V:Y=Y+W:IF BUTTON()!=16THEN
C=-1H=0T=-8U=Y ELSE STICK OUT B,Z:IF C>=0THEN
M=T-X:N=Y-U:V=V+M/48W=W-N/48 ELSE IF!H THEN
BEEP 40M=SIN(B)IF M THEN SPCHR 17,617+(M<0)*8
N=COS(B)ENDIF:H=H+(H<60)*6Z=U:T=X+M*H:U=Y-N*H
G=.25C=SPHITRC(0,7,T,MIN(Z,U),1,ABS(Z-U)+1)
IF C>=0THEN:BEEP 95U=F[C]+8:ENDIF:ENDIF
SPROT 16,DEG(ATAN(M,N))GLINE X,Y,T,U,-256
ENDIF:SPOFS 16,T,U:SPOFS 17,X-8,Y-9IF L>0THEN
Z=P MOD 8:E[Z]=K:F[Z]=L-20Q[Z]=RND(2)*PI()
R[Z]=MAX(0,RNDF()*S/1024-2)P$=STR$(P)+" "
FOR I=0TO 2BGPUT 0,I,0,ASC(MID$(P$,I,1))NEXT
Z=(RNDF()-.5)*S/16:K=MAX(0,MIN(304,K+Z))P=P+1
L=L-FLOOR(40+S/128-ABS(Z)/16)ENDIF:VSYNC 1
GLINE X,Y,T,U,0UNTIL W>-1&&U>248BGMSTOP
BEEP 11WHILE BUTTON(2)!=32WEND:WEND'by @OBONO