我编写了一个使用gamekit点对点连接的炸弹人应用程序。问题是过了一段时间,游戏不再同步。游戏工具包点对点
我看了GKTanks的示例代码并使用了他们的模型。同伴之间没有客户端/服务器关系,所以我没有在我的游戏中使用它。两个同伴都维护一个他们根据收到的数据进行更新的游戏状态。
我有一个NSTimer用于在每一帧运行gameloop。 NSTimers不同步,因此有时候游戏状态会变得不同:例如,玩家几乎在同一时间选择加电,并且两者都获得加电,因为发送数据需要一段时间。
我将不胜感激关于使应用程序工作的任何想法。我正在考虑重写代码以使用客户端服务器,但我不确定它是否是个好主意...但是
谢谢!
编辑:我改变了代码,这样随机播放器被挑选为主机。每当玩家放置炸弹时,他都会询问服务器放置在哪里。服务器返回玩家位置(如服务器上所示),然后告诉玩家放置炸弹的位置。
对于通电服务器检查是否玩家拿起电源,如果他做了,它会发送一个数据包通知他。
现在又出现了另一个问题。设备之间的延迟很高(我正在使用蓝牙连接)。客户点击按钮放置炸弹后需要大约0.2秒的时间。
我正在可靠地发送所有数据。我做对了吗?