繁体   English   中英

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

[英]Java move player smoothly from one point to another

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

您可以:

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

虽然我使用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];
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM