我想創建一個簡單的粒子模擬。有兩種類型的粒子靜態和移動。靜態粒子將運動粒子吸引到其中心。靜態顆粒具有規定它們是如何硬拉動移動的顆粒無法阻止粒子過沖
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;
但問題仍然存在。我不知道這個問題。
這裏是超調發生的快照。
我在原始代碼中沒有使用'static'作爲變量名。 –
@SayamQazi,檢查你的代碼,你有'static.x'和'static.y'。稱它爲'force',稱之爲'atttractor'或者其他只是不變的或類名變成與保留字相同的顏色。 –
是的,我知道。我正在談論我的原始代碼。我沒有在SO上拷貝我的原始代碼。 –