HSPでシューティングゲームを作っています。
そして、きれいな円状に広がる、敵弾幕を作っています。
しかし、なぜか歪なヘンな弾幕になります。
ヘンな弾幕といいますと、円状ではなく多角形の弾幕になります。
これが問題だと思われるスプリクト 1
ええと、これを説明しますと、rdは円周率÷180のcos,sinのための変数で360度をラジアンにする
;敵弾出現処理 *EnBuAppear foreach enlife:ecnt=cnt if enlife(ecnt)>0&&stime=0{ foreach enbulife if enbulife(cnt)=0{ enbulife(cnt)=enf(1,ecnt)+1 enbuf(cnt)=enf(2,ecnt) switch enbulife(cnt) case 1 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 case 3 if buc<=36:enbux(cnt)=enx+9:enbuy(cnt)=eny+29 if buc>36:enbux(cnt)=enx+117:enbuy(cnt)=eny+29 d=buc\36*10 enbuv(cnt)=rd*d:enbusp(cnt)=10 bobup++:if bobup>=3200:bobup=0:enf(1)++:if enf(1)>=3:enf(1)=0 buc++ if buc>72:stime=20:break swbreak swend } loop } loop buc=0 stime-- return
ものです。
enbuvに敵弾の移動する方向で、enbuspの方は速度です。
そして、移動させる処理が
;敵弾移動処理 *EnBuMove foreach enbulife if enbulife(cnt)>=1{ enbux(cnt)+cos(enbuv(cnt))*enbusp(cnt) enbuy(cnt)+sin(enbuv(cnt))*enbusp(cnt) 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 } loop return
中学生の分際で三角関数とやらを使っています。
たぶん、ここには問題はないと思いますが一応。