我所需要的只是根据点击来确定玩家的新坐标,并让玩家顺利地向它移动。例如玩家在 (20, 20) 并且您点击 (50, 80) 我将如何让它顺利移动。我已经尝试了许多不同的东西,主要基于勾股公式试图通过找到斜边然后找到具有较小斜边的相同三角形来计算新坐标,但必须有一个更简单的方法。
问问题
323 次
2 回答
2
你可以:
- 计算由起点和终点形成的线段的斜率。
- 对于到达目的地之前的每个时间段,根据步骤 1 中计算的斜率调整新坐标。
于 2013-04-13T04:33:53.650 回答
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];
}
无论每帧多少个单位,速度都是恒定的,并且在到达目的地时会停止。它可能会晃动一点,但很容易解决。
编辑:我忘了提。此函数返回速度。不是坐标
于 2014-01-02T07:41:18.660 回答