2013-04-13 38 views
0

我只需要基於點擊來分配玩家的新協調,並讓玩家順利移動。例如,玩家在(20,20),你點擊(50,80),我將如何讓它順利移動。我嘗試了許多不同的東西,主要是基於畢達哥拉斯公式試圖通過找到斜邊來計算新的座標系,然後找到具有較小斜邊的相同三角形,但必須有一個更簡單的方法。Java將玩家從一個地方移動到另一個地方

回答

2

可以:

  1. 計算由起點和終點形成的線段的斜率。
  2. 對於每一個時間段,直到你到達目的地,調整新的基於步驟計算的斜率1.
0

雖然我在JavaScript程序,你應該能夠閱讀和理解它

座標
function move(x1,y1,x2,y2,speed){//executed each time frame. Returns coords as array [x,y] 
    if(!speed)speed=1; 
    var dis=Math.sqrt(Math.pow(x1-x2)+Math.pow(y1-y2)); 
    return [(x1-x2)/dis*speed,(y1-y2)/dis*speed]; 
} 

無論多少單位每幀速度是恆定的,它會在到達目的地時停止。它可能會動搖一點,但可以很容易地修復。

編輯:我忘了提及。該功能返回速度。不是座標

相關問題