Java 如何使用服务器保持移动速度?

Java 如何使用服务器保持移动速度?,java,awt,kryonet,Java,Awt,Kryonet,我正在为我的游戏编程一个服务器,但我不知道如何保持移动速度。根据计算机上运行的内容,移动要么非常快,要么非常慢。我已经尝试为服务器创建自己的delta方法,但它不起作用。我不能在更新时使用Slick delta变量,因为服务器是使用AWT&Kryonet编程的 有人知道如何保持移动吗?您的游戏服务器需要有一个确定的全局时间。我建议使用System.currentTimeMillis() 你必须以时间为基础,以方程式为基础。由于机器上的循环不会以精确的速率执行,因此需要使用System.curre

我正在为我的游戏编程一个服务器,但我不知道如何保持移动速度。根据计算机上运行的内容,移动要么非常快,要么非常慢。我已经尝试为服务器创建自己的delta方法,但它不起作用。我不能在更新时使用Slick delta变量,因为服务器是使用AWT&Kryonet编程的


有人知道如何保持移动吗?

您的游戏服务器需要有一个确定的全局时间。我建议使用System.currentTimeMillis()

你必须以时间为基础,以方程式为基础。由于机器上的循环不会以精确的速率执行,因此需要使用System.currentTimeMillis()从以前的时间值中减去经过的增量时间。在运动方程中使用该值以获得一致的运动外观。如果你在计算物理(即运动),你会希望使用龙格-库塔四阶方程,而不是普通的欧拉方程(欧拉计算误差随时间的变化)

其他有用的链接:


你对游戏中的时间有什么概念吗?可能所有事件都发生在特定的时间,即使您的服务器在200毫秒内没有处理事件,当事件发生在“游戏内部”时,它也不会改变……您可以扩展到:“但它不会工作吗?”客户端有时间的概念,但它没有被使用,因为移动是通过服务器完成的。我试图创建一个增量更新线程来更新增量,但失败了,并且始终将增量返回为0。如果您向我们展示
增量更新
代码,也许我们可以帮助您实现这一点,否则我们在这个问题上就没有什么可谈的了。