【发布时间】:2011-11-15 20:13:26
【问题描述】:
我编写了一个使用 gamekit 点对点连接的炸弹人应用程序。问题是一段时间后游戏不再同步。
我查看了 GKTanks 的示例代码并使用了他们的模型。对等方之间没有客户端/服务器关系,所以我没有在我的游戏中使用。两个对等点都维护一个游戏状态,它们根据接收到的数据进行更新。
我有一个用于在每一帧运行游戏循环的 NSTimer。 NSTimers 不同步,所以有时游戏状态会变得不同,例如:玩家几乎在同一时间拿起通电,他们都得到了通电,因为发送数据需要一段时间。
如果有任何关于使该应用正常运行的想法,我将不胜感激。我正在考虑重写代码以使用客户端-服务器,但我不确定这是否是个好主意......但是
谢谢!
编辑:我更改了代码,以便随机选择一个玩家作为主持人。 每次玩家放置炸弹时,他都会询问服务器将其放置在哪里。服务器返回玩家位置(如服务器上所见),然后告诉玩家放置炸弹的位置。
对于通电,服务器会检查玩家是否获得了通电,如果他收到了,则会发送一个数据包通知他。
现在又出现了一个问题。设备之间的延迟很高(我使用的是蓝牙连接)。客户端点击按钮放置炸弹后,放置炸弹大约需要 0.2 秒。
我正在可靠地发送所有数据。我这样做对吗?
【问题讨论】:
标签: iphone ios networking gamekit