HSP3.5Betaシューティングゲームを製作中なのですが、球を打った瞬間に当たり判定のラベルででエラー7(配列の要素が無効です)と出てしまいます。
確認しても、エラーの原因になりそうな場所は見当たりませんでした。
見落としているだけかもしれませんし、コードも見にくいとは思いますが、回答お願いします。
当たり判定はこちらのページを参考にしました。
http://www.geocities.jp/hspgame2/
(Windows7Pro,8.1Homeでエラー確認)
○ラベルの使用状況
・dan:スペースキーが押されているかを確認し、押されていれば球発射のフラグを立てる
・teki:ランダムで敵を発生させ、動かす
・ata:球と敵の当たり判定(ここの103行目でエラー)
お願いします。
//ここから下スクリプト screen 0,800,600 kx=20 ky=521 dim tm,50 dim dx,50 dim dy,50 dim tk,50 dim tx,50 dim txy,50 dim ty,50 dim tyy,50 dim st,30 dim sx,30 dim sy,30 dim sk,30 dim sp,30 dim si,30 mmplay repeat redraw 0 getkey keyx,88 getkey keyz,90 getkey sft,16 getkey hi,37 getkey ue,38 getkey mi,39 getkey si,40 getkey sft,16 if hi=1:if sft=0:kx-4:else:kx-1 if ue=1:if sft=0:ky-4:else:ky-1 if mi=1:if sft=0:kx+4:else:kx+1 if si=1:if sft=0:ky+4:else:ky+1 if kx<=20:kx=20 if ky<=31:ky=31 if kx>=460:kx=460 if ky>=550:ky=550 color 0,0,0 boxf color 50,50,50 boxf 20,30,500,590 gosub*dan gosub*teki gosub*ata font"",25 color 0,0,0 pos kx,ky mes"自" color 0,0,0 boxf 0,0,20,590 boxf 0,0,500,30 boxf 0,590,500,620 redraw 1 wait 2 loop *dan if keyz=1{ repeat 50 if tm(cnt)=0{ tm(cnt)=1 tmh(cnt)=1 dx(cnt)=(kx+10) dy(cnt)=ky-5 break } loop } color 0,0,0 repeat 50 if tm(cnt)=1{ dy(cnt)-12 pos dx(cnt),dy(cnt) if dy(cnt)>=25:pset dx(cnt) , dy(cnt) if dy(cnt)<=30:tm(cnt)=0 } loop return *teki randomize if rnd(20)=0{ repeat 50 if tk(cnt)=0{ tk(cnt)=1 tx(cnt)=rnd(30-500) ty(cnt)=-20 break } loop } repeat 50 if tk(cnt)=1{ if ty(cnt)>=350:tx(cnt)-3 ty(cnt)+3 pos tx(cnt),ty(cnt) if (tx(cnt)<=-20)|(ty(cnt)>=640):tk(cnt)=0:else:mes"敵" } loop return *ata repeat 50 if tm(cnt)=1{ repeat 50 if tk(cn)=1:if(abs(dx(xyz)-tx(cn))<40)&(abs(dy(xyz)-ty(cn))<40)&(abs(dx(xyz)-tx(cn))>0)&(abs(dy(xyz)-ty(cn))>0){ tk(cn)=0 tm(xyz)=0 score+200 if score>hscore:hscore=score break } cn+1 loop } xyz+1 loop return //---Program End---//