2

大家好,

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

粒子生成角度,蓝色可以生成,红色不能生成。 图1

笔记:

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

1 回答 1

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;
于 2012-12-03T18:18:51.550 回答