我正在为我的游戏编写服务器,但无法弄清楚如何保持移动速度。根据计算机上运行的内容,移动速度要么非常快,要么非常慢。我已经尝试为服务器创建自己的 delta 方法,但它不起作用。我不能在更新时使用 Slick delta 变量,因为服务器是使用 AWT 和 Kryonet 编程的。
有谁知道如何保持运动?
您的游戏服务器需要有一个明确的全球时间。我建议使用 System.currentTimeMillis();
然后,您必须根据基于时间的方程来确定运动。由于您机器上的循环不会以准确的速率执行,因此您需要使用 System.currentTimeMillis() 从上一个时间值中减去来获得通过的增量时间。在您的运动方程式中使用该值以获得一致的运动外观。如果您正在计算物理(即运动),您将需要使用 Runge Kutta 4 阶方程,而不是正常的欧拉方程(欧拉随着时间的推移计算误差)。
其他有用的链接: