如何让X和Y同时到达目的地?

时间:2018-03-27 01:02:29

标签: animation math game-physics axis

我正在学习如何为视频游戏编写代码;具体来说,通过鼠标点击玩家运动。我遇到的问题取决于目的地,X可以在Y之前到达目的地,反之亦然。如何让X和Y同时到达目的地?

1 个答案:

答案 0 :(得分:1)

让您有起点(x0,y0)和终点(x1,y1)

因此坐标差异为dx = x1 - x0, dy = y1 - y0 - 方向向量的组成部分。

查找距离Len = Sqrt(dx*dx + dy*dy) - 向量长度

获取规范化的方向向量分量udx = dx / Len, udy = dy / Len

现在每一步(在计时器事件等处)改变对应于该公式的位置:x = x0 + V * udx * t, y = y0 + V * udy * t,其中V是速度,t是时间。该定律描述了线性运动。

通常值得计算和使用速度矢量分量vx = V * udx, vy = V * udy - 在这种情况下,您可以轻松地从边界进行反射(对于垂直边界 - 只是否定vx)等等。

请注意,如果您的屏幕坐标是整数,则必须在输出前对值进行舍入(不要对新步骤使用上一步的整数值)