我一直在为iOS构建一个游戏中心游戏,目前运行良好。最近我开始测试游戏,在游戏中出现了明显的延迟,导致游戏不同步。
基本上,我的游戏有两个玩家,每个玩家控制一个游戏角色。游戏角色可以射出火球和冰球等攻击造成伤害,也会引起各种效果。例如,如果冰球碰到对手,对手会被冻结3秒钟;而火球则会让对手持续受到火焰伤害3秒钟。
问题就在于,当我和我兄弟进行游戏时,由于延迟的原因,我的游戏显示我还剩下40点生命值,而他已经输到0点;而在他的设备上,游戏显示我的生命值为0,他的生命值却还剩下20点。
这意味着攻击在一台设备上(根据角色/火球的位置)得到了注册/碰撞,但在另一台设备上没有得到注册/碰撞,反之亦然。
我目前正在使用默认的点对点游戏中心架构。使用客户端-服务器架构(即一个人成为服务器)是否能解决这个不同步的问题?
如果不行,那么在游戏工具包API中还有什么其他选择呢?
基本上,我的游戏有两个玩家,每个玩家控制一个游戏角色。游戏角色可以射出火球和冰球等攻击造成伤害,也会引起各种效果。例如,如果冰球碰到对手,对手会被冻结3秒钟;而火球则会让对手持续受到火焰伤害3秒钟。
问题就在于,当我和我兄弟进行游戏时,由于延迟的原因,我的游戏显示我还剩下40点生命值,而他已经输到0点;而在他的设备上,游戏显示我的生命值为0,他的生命值却还剩下20点。
这意味着攻击在一台设备上(根据角色/火球的位置)得到了注册/碰撞,但在另一台设备上没有得到注册/碰撞,反之亦然。
我目前正在使用默认的点对点游戏中心架构。使用客户端-服务器架构(即一个人成为服务器)是否能解决这个不同步的问题?
如果不行,那么在游戏工具包API中还有什么其他选择呢?