判定
hit
500 'hit
510 sp_check:rc=2 予め設定していた割り当てに基づいてスプライトの衝突チェックを行います
結果から自分キャラと敵&弾の衝突を処理をします
520
if sp_hit(0,0)>0 then 衝突があるなら
530
kn=sp_hit(0,1):dc+=1:nn=dc:nx=cx(kn):ny=cy(kn):na=4:gosub cmake: 爆発キャラ作成
sp_hit(0,1)から衝突した相手の番号を検知、番号から座標を検知してnx,nyに代入、
dcを+1してnnに代入、na(アルゴリズム)は4(爆発)でcmake:を呼ぶ
540 f=-(19<kn):fn=-ec*(not -f)+bc*f
:rc=f*2+2:gosub ckill: 当たった敵または弾を消す
rcに2か4を入れてckill:を呼ぶ
550
mvt-=1:if mvt=0 then sp_on 0,0:ui_msg"end."
自己バイタリティを引いて0ならスプライト0(自分)を消してendのメッセージ
560 endif
自弾と敵の衝突で処理をします
570 for i=1
to lc 1から自分弾の数だけ繰り返す
580 if sp_hit(i,0)>0 then 当たっているなら
590
kn=sp_hit(i,1):dc+=1:nn=dc:nx=cx(kn):ny=cy(kn):na=4:gosub cmake: 爆発キャラ作成
sp_hit(i,1)から衝突した相手の番号・座標を検知してnx,nyに代入、dcを+1してnnに代入、
na(アルゴリズム)は4(爆発)でcmake:を呼ぶ
600 if cag(kn)=3 then fn=ec:rc=2:gosub ckill: 敵の消滅処理
fnにec(敵の最後尾)を入れ、rcは2(ecを削る)でckill:を呼ぶ
610 kn=i:fn=lc:rc=0:i-=1:gosub ckill: 自弾の消滅処理
knにi(消す自弾の番号)fnにlc(自弾の最後尾)、rcは0(lcを削る)をセットしてckill:を呼ぶ
次ループで同一番号を処理するためiを1引く(中身は新たに最後尾だったものが入っている)
620 endif
630 next
640 '