今STGを作っているのですが、実行して10秒後くらいに
「Error 31 in line 141 -->異なる型を持つ配列変数に代入しました」
というエラーが出てしまい次の作業に進めません。
何処がいけないんでしょうか?
色々と調べましたがまだ始めたばっかな僕にはイマイチ理解できないもので・・・
//変数(初期設定)
screen 0,740,480
randomize
move=5.0;自機の移動速度
smax=50.0;背景の星の最大個数
emax=20.0;敵の最大数
zmax=20.0;敵弾の最大数
wmax=5.0;自機弾最大数
jspd=10.0
jx=100.0
jy=200.0
pi = 3.141592
//配列変数
dim sx,smax
dim sy,smax
dim sc,smax
dim st,smax
dim et,emax;背景(星)の変数
dim et,emax
ddim ex,emax
ddim ey,emax;敵の変数
dim zt,zmax
ddim zx,zmax
ddim zy,zmax
ddim zvx,zmax
ddim zvy,zmax;敵弾の変数
dim wt,wmax
dim wx,wmax
dim wy,wmax;自機弾の変数
*main
frame + 1
color 100,0,0
boxf 640,0,740,480
pos 670,0
color 252,252,252
mes "自弾状況"
pos 670,130
color 252,252,252
mes frame
pos 700,20
repeat wmax
color 252,252,252
mes wt(cnt)
loop
//背景
color 0,0,0
boxf 0,0,640,480
time++
if (time \ 1)=0 {
repeat smax
if st(cnt)=0 {
st(cnt)=1
sx(cnt)=rnd(640)
sy(cnt)=0
sc(cnt)=sx(cnt)*32.0+31.0
break
}
loop
}
repeat smax
if sy(cnt)>480 : st(cnt)=0
if st(cnt)=1 {
sy(cnt)+=10.0
}
color sc(cnt),sc(cnt),sc(cnt)
boxf sx(cnt),sy(cnt),sx(cnt)+1.0,sy(cnt)+1.0
loop
//自機描写
color 0,252,0
pos jx,jy
mes"●"
//自機移動
stick key,79
if key&2:jy-jspd
if key&1:jx-jspd
if key&4:jx+jspd
if key&8:jy+jspd
if key&16{
shot_start = 1
}
else {
shot_start = 0
}
if key&64:jspd=4:else:jspd=10
if jx>620:jx=620
if jy>460:jy=460
if jx<0:jx=0
if jy<0:jy=0
//敵の出現
if frame = 50 {
repeat emax
if et(cnt) = 0 {
ex(cnt) =(1.0*rnd(480))
ey(cnt) = -8.0
et(cnt) = 1
break
}
loop
frame = 0
}
//敵の移動
repeat emax
if et(cnt) != 0 {
ey(cnt) + 6.0
//敵弾の発射
if ey(cnt) > 100 & et(cnt) != 2 {
zt(cnt) = 1
zx(cnt) = ex(cnt)
zy(cnt) = ey(cnt)
tmp = atan(jy-ey(cnt) , jx - ex(cnt))
tmp2 = pi * 2 + tmp
zvx(cnt) =cos(tmp2) * 3.0
zvy(cnt) =sin(tmp2) * 3.0
et(cnt) = 2
}
if ey(cnt) > 480 {
ey(cnt) = 0
}
}
loop
//敵の描写
repeat emax
if et(cnt) != 0 {
pos ex(cnt) - 8.0 ,ey(cnt) - 8.0
color 255,255,0
mes "■"
}
loop
//敵弾の移動
repeat zmax
if zt(cnt) = 1 {
zx(cnt) + zvx(cnt)
zy(cnt) + zvy(cnt)
}
loop
//敵弾の描写
repeat zmax
if zt(cnt) = 1 {
pos zx(cnt) - 8.0,zy(cnt) - 8.0
color 0,255,0
mes "★"
}
loop
//自分の弾
if shot_start =1 {
repeat wmax
if wt(cnt) = 0 {
wx(cnt)=jx
wy(cnt)=jy
wt(cnt)=1
break
}
loop
}
repeat wmax
if wt(cnt)=1 {
pos wx(cnt) - 8.0, wy(cnt) - 8.0
color 252,252,252
mes "▲"
}
loop
repeat wmax
if wt(cnt)=1 {
wy(cnt) -8.0
if wy(cnt) < -8.0 {
wt(cnt)=0
}
}
loop
redraw 0
redraw 1
await 17
goto *main