↑こちらで質問した内容の続きとなります。
}else{//no_shift
l_a = (2*PI)/(300); //一定の角度(曲がる)
l_b = atan2(y,x) - cshot[k].angle; //敵への角度-弾の角度
if(CheckStatePad(configpad.swch)==1){//スイッチボタンが押されたら敵に射出
cshot[k].spd=20;
}else{
if(cos(l_b) > cos(l_a)){ //もしも「弾の進行方向と敵への角度の差」が「曲がる角度」より大きかったら
cshot[k].angle=atan2(y,x); //敵への角度を弾の角度へ代入
}else if(sin(l_b)>0){ //弾の正面ではなく右寄りならば
cshot[k].angle += l_a; //弾の角度に左向きに修正(angleに一定値を足す)
}else if(sin(l_b)<0){ //弾の正面ではなく左寄りならば
cshot[k].angle -= l_a; //弾の角度に右向きに修正(angleから一定値を引く)
}else{ //弾が正面ならば引き続き誘導
cshot[k].angle=atan2(y,x);
} //敵がいてシフトを押していなく、スイッチを押されてないときのいときのオプションの弾
}
}
敵に向かって弾がゆっくり誘導し、Cを押すとスパーンと敵に命中するのですが
「敵に向かってゆっくり誘導」を「敵の周囲をサテライト旋回する弾」にしたいのですが、どうすればいいのでしょうか?
cshot[k].angle -= l_a;とcshot[k].angle += l_a;にPI/2を足したり引いたりすることで敵に対して水平に弾が回るということを実現したかったのですが弾が半透明になり高速でブレている状態になりました。
最終的にCを押すと回転方向から敵の方向を導き出し、直角に曲がる弾にしたいです。
また、ソースに「これいらないんじゃない?」という部分がありましたら指摘お願いします。