私はshmupを作成しようとしており、特定の「弾丸パターン」を作成しようとしています. 基本的に、敵に円の周りに多数の弾丸を発射させます。その弾丸の円が右に向かっているとしましょう。次に、円を崩壊させたいので、弾丸の x 速度と y 速度に 2 番目のインパルスを追加します。基本的に、発射される弾丸の形状が移動中に次のように見えるようにします (この見掛け倒しの記号化が理にかなっていることを願っています)。
O o • o O
それはうまくいきます。
次に、水平方向ではなく垂直方向の配置を折りたたむだけなので、次のようになります。
O — O
これもできます。しかし、この円を斜めに、または完全に水平または垂直以外の方向に撮影しようとすると、少し壊れてしまいます。
ここに私が取り組んでいるコードがあります.clusterGrowthXとYのセクションは私が問題を抱えている部分です. 解決策はおそらく私を正面から見つめていますが、今はわかりません。ご不明な点がございましたら、お気軽にお問い合わせください。ありがとう。
for(var j:int = 0; j < _info.clusterAmount; j++)
{
var around : Number = _info.angle - (_info.clusterRange/2) + (_info.clusterRange/_info.clusterAmount/2) + j * (_info.clusterRange/_info.clusterAmount);
var xOff : Number = (Math.cos(around) * _info.clusterRadius);
var yOff : Number = (Math.sin(around) * _info.clusterRadius);
var bullet = new _info.bulletShape(_info);
bullet.x = startPoint.x + xOff;
bullet.y = startPoint.y + yOff;
if(_info.dParent is PlayerControl)
{
bullet.x += Math.cos(_info.angle) * 40;
bullet.y += Math.sin(_info.angle) * 40;
}
var sign : Number = (_info.angle < 0) ? -1 : 1;
trace(Math.cos(around),Math.sin(around));
bullet.info.vx += Math.cos(around) * _info.clusterGrowthX;
bullet.info.vy += Math.sin(around) * _info.clusterGrowthY;
bullet.rotation = _info.angle * 180 / Math.PI;
_info.dLevel.addChild(bullet);
}