我正在为两个玩家在网络上玩的简单在线乒乓球游戏编写代码。这是一个客户端-服务器应用程序,游戏逻辑在服务器端进行。我在客户端方面遇到了一些游戏同步问题,结果非常不理想。目前的工作方式如下:
1. 服务器端有一个游戏对象,存储玩家和球的位置,每个对象都有它的x、y位置和x、y速度。基于这些数据,在循环中更新对象的位置。 2. 在客户端也有一个本地对象,与服务器端的数据相同,并且在循环中也被更新。 3. 当玩家按下/释放向上或向下键时,客户端会发送一个带有一个整数的网络数据包,以便使玩家对象在服务器端的游戏对象中开始/停止移动。 4. 服务器每50毫秒发送一个同步数据包,其中包括三个对象的位置和速度。当客户端接收到此数据包时,会相应地更改游戏对象的位置。
这种方法效果不佳,因为它会在客户端上来回移动游戏对象。你有什么好的建议来改善它吗?
1. 服务器端有一个游戏对象,存储玩家和球的位置,每个对象都有它的x、y位置和x、y速度。基于这些数据,在循环中更新对象的位置。 2. 在客户端也有一个本地对象,与服务器端的数据相同,并且在循环中也被更新。 3. 当玩家按下/释放向上或向下键时,客户端会发送一个带有一个整数的网络数据包,以便使玩家对象在服务器端的游戏对象中开始/停止移动。 4. 服务器每50毫秒发送一个同步数据包,其中包括三个对象的位置和速度。当客户端接收到此数据包时,会相应地更改游戏对象的位置。
这种方法效果不佳,因为它会在客户端上来回移动游戏对象。你有什么好的建议来改善它吗?