【发布时间】:2016-07-04 13:53:20
【问题描述】:
我正在尝试创建一个简单的粒子模拟。有两种类型的粒子静止和移动。静态粒子将移动粒子吸引到它们的中心。静态粒子具有强度属性,它决定了它们拉动运动粒子的力度
var angle:Number = Math.atan2(moving.y - static.y , moving.x - static.x);
var dist = Point.distance(new Point(moving.x,moving.y) , new Point(static.x,static.y));
moving.velX += Math.cos(angle + Math.PI) * static.strength / dist;
moving.velY += Math.sin(angle + Math.PI) * static.strength / dist;
问题是当一个粒子刚刚通过中心时,距离非常小,导致速度值非常大。
我在计算速度之前添加了一个额外的距离检查。
if (dist < 1)
dist = 1;
但问题仍然存在。我无法找出问题所在。
这是发生过冲的快照。
【问题讨论】:
标签: actionscript-3 simulation physics particle-system