我第二什麼馬蒂說,但它可以變得更快 - 對於內存約48至64位的成本(哇這麼多!!! ...)
var dX:Number = x1 - x2;
var dY:Number = y1 - y2;
var dist:Number = Math.sqrt(dX * dX + dY * dY);
var animTime = dist/state.stageWidth;
而對於解釋上EB開發的要求,平方根有勾股定理的一部分:X上
a^2 + b^2 = c^2
線和Y軸可以被看作是一個直角三角形的兩條腿,以及因此斜邊將是di兩個特定點之間的立場(我們需要)。
首先我們減去點(x1 - x2,y1 - y2)。我們仍然有兩個點,但是,三角形的直角部分現在位於0,0 - X和Y軸交叉的點。爲了能夠將其應用到畢達哥拉斯定理,讓我們看看大小一個和b將是 - 腿一個的長度爲0之間的距離,0和點1.減去0,0仍然會留給我們第1點 - 但是,我們知道它將位於X軸的某個位置 - 因此它的Y將會是0.我們可以說長度爲a等於第1點的X部分。
同樣爲b leg and point 2.然而這一次,我們只得到了它的一部分。
並計算Ç,我們將首先總結的一個和b(A^2 + B^2)所述第二功率。我們現在有c^2,所以爲了得到斜邊,我們將計算它的平方根(即AS3.0中的Math.sqrt())。
c是距離。
希望這解釋了這一點。
'nX-nY/oX-oY'會讓你的係數在0和1之間,其中'oX'和'oY'是你期望得到1的座標,'nX'和'nY'是需要速度值小於1的新座標。 – soulseekah 2010-11-08 10:43:29
感謝您的回覆soulseekah,我無法使用上面的信息處理它,不幸的是我認爲我已經通過Matti的回答正常工作。 – 2010-11-08 14:58:14