2

我正在尝试制作 shmup 并尝试制作特定的“子弹图案”。基本上,我有一个敌人发射了一些围绕一个圆圈移动的子弹。假设那个子弹圈向右移动。接下来,我希望圆自行塌陷,因此我在子弹的 x 和 y 速度上添加了第二个脉冲。从本质上讲,发射的子弹的形状在行进时看起来像这样(我希望这个伪劣的符号是有意义的):

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);
            }
4

2 回答 2

1

您需要做的是让您的 clusterGrowth 沿任意角度增加和减少。

那么我们如何沿任意角度投影一个点呢?

var amountOfOffset:Number = 10// how far along the angle you want to go.
var angleInDegrees:Number = 45; // this is the angle you want it to expand on.
var angleInRadians:Number = angleInDegrees * 0.0174532925;
clusterGrowthX = amountOfOffset * cos(angleInRadians);
clusterGrowthY = amountOfOffset * sin(angleInRadians);

你应该这样做。

您要问的内容与在圆上查找点非常相似: Find the point with radius and angle

于 2013-04-29T21:00:29.000 回答
0

Tween / Tweenlite 库。解决您的所有问题 ^_^ 简单、轻松、干净、优化到天堂。

于 2013-04-29T21:03:06.613 回答