Java将播放器从一个点平滑移动到另一个点

时间:2013-04-13 04:28:42

标签: java point animated

我所需要的只是根据点击来哄骗玩家的新协调,并让玩家顺利地向它移动。例如,玩家在(20,20)并且你点击(50,80)我将如何让它顺利移动。我尝试了许多不同的东西,主要是基于勾股计算试图通过找到斜边来计算新的坐标,然后找到一个更小的斜边相同的三角形,但必须有一个更简单的方法。

2 个答案:

答案 0 :(得分:2)

你可以:

  1. 计算由原点和目的地形成的线段的斜率。
  2. 对于到达目的地的每个时间段,根据步骤1中计算的斜率调整新坐标。

答案 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];
}

每帧的速度是恒定的,但是当它到达目的地时它会停止。它可能会稍微震动,但可以轻松修复。

编辑:我忘了提及。此函数返回速度。不是坐标