在某些角度之间以随机角度射出的粒子

时间:2012-12-03 17:51:36

标签: actionscript-3 flash math angle

H ello all,

我正在创建一个游戏,其中一些粒子是在两个物体碰撞后创建的。然后给予粒子随机的x和y速度,并且它们在每个方向上射出。我一直试图改变粒子射出的方式,类似于图1 ,其中粒子在330到30和150到210之间的角度射出(我用角度写了角度而不是为了方便理解而不是弧度)。 图1 中的红色区域是颗粒不应射出的地方,蓝色是应该的位置。然而,我无法达到预期的效果。我想知道是否有人可以帮助链接到有用的阅读或代码中的示例。我一直在搜索谷歌,但找不到一个像样的例子。

Particle spawn angles, blue being able to spawn, red being unable to spawn. http://s11.postimage.org/nmcsxpao3/Angles.png 图1

注意:

    - 角度以度为单位但需要更改为弧度,因为Flash使用弧度,添加到代码中的简单转换(Math.pi/180)就足够了。
    - 图1 类似于笛卡尔坐标系,但y轴在Flash的坐标系中反转。
    - 我会发布我尝试过的代码,但它远远超出了所希望的代码,它无济于事。

1 个答案:

答案 0 :(得分:2)

var speed:Number = minSpeed + Math.random() * (maxSpeed - minSpeed);
var angle:Number = Math.random() * 120 - 30;
if (angle > 30) angle += 120;
angle *= Math.PI/180;

var speedX = Math.cos(angle) * speed;
var speedY = Math.sin(angle) * speed;