キャラの追加と削除

キャラ追加処理
  新番号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 '