キャラの追加と削除
キャラ追加処理
新番号nn(キャラ最後尾番号に1足した場所)に座標と移動方向、パターンをセットする
820 cmake:
830
cx(nn)=nx:cy(nn)=ny
840 cmx(nn)=0:cmy(nn)=0
850 cvt(nn)=1:cag(nn)=na:cdt(nn)=0
860 select case na 各アルゴリズムによって細かい設定
870 case 1:
cpt(nn)=0:cmx(nn)=md*4
880 case 2:
cpt(nn)=1:cmx(nn)=sgn(128-nx)
890 case 3: cpt(nn)=16
900 case 4: cpt(nn)=3
910 case 5:
cpt(nn)=2 敵弾の方向計算
920 d1=mx-nx:d2=my-ny:k=sqr(d1^2+d2^2+1) 三平方の定理と平方根から弾の飛ぶ方向、xyの速度を計算します
930 cmx(nn)=d1/k:cmy(nn)=d2/k:cx(nn)+=4:cy(nn)+=4
940 end select
950 sp_put
nn,(cx(nn),cy(nn)),cpt(nn) これが最初のsp_putで変数割り当てになります
960
sp_on nn,1 表示をONにします
970 return
980 '
キャラ削除処理
kn(iの値、現在の位置)にfn(一番後ろのキャラ)を入れ替える
990 ckill:
1000
cx(kn)=cx(fn):cy(kn)=cy(fn)
1010
cmx(kn)=cmx(fn):cmy(kn)=cmy(fn)
1020
cpt(kn)=cpt(fn):cvt(kn)=cvt(fn)
1030
cag(kn)=cag(fn):cdt(kn)=cdt(fn)
1040 sp_swap
kn,fn スプライトも丸ごと入れ替える(これで表示だけでなく衝突判定データも入れ替わる)
1050 sp_on fn,0 最後に一番後ろのスプライトを表示OFFにして
1060
select case rc キャラ種に応じて最後の値を1減らす
1070 case
0: lc-=1
1080 case 2: ec-=1
1090 case 4: bc-=1
1100 case 6:
dc-=1
1110 end select
1120
return
1130 '