2012-02-26 72 views
1

对于我的cocos2d游戏,我在AppDelegate的applicationDidFinishLaunching方法中验证本地用户。但是,只要身份验证完成,当“欢迎回来,X”消息滑下并备份时,就会在我的游戏中造成短暂的延迟。问题是,我无法控制何时验证完成 - 显然,持续时间高度依赖于设备的数据连接。在Game Center上验证本地用户时延迟

有时,当我在菜单场景中时,消息(以及不可避免的伴随延迟)出现,这在某种程度上是可以接受的,因为我的菜单或多或少是静态的。通常情况下,游戏已经开始时会发生。因为我的游戏是一个无休止的卷轴,这个信息总是会导致玩家的移动滞后,甚至有时会导致玩家死亡(半秒滞后就足够了: - /)。

我该如何绕过这个?我曾经在我的菜单场景之前有一个加载场景来加载我的一些资源,并且因为加载需要一段时间,所以在加载场景中总是有很好的机会完成认证,但是当然我不能保证它会是真的!

回答

1

如果连接不好,游戏中心可以让游戏冻结一小会儿。我怀疑在不同的线程上加载GameCenter会是一个好主意(或者甚至会对此产生影响),但是您可以解决您遇到的问题的方法是让游戏进行3-2-1倒计时在它开始滚动/移动之前。会给游戏中心多一些时间和玩家建立自己的焦点的时间,在一场比赛中开始认真对待一些球员。 我希望这可以帮助。

+0

感谢您的建议..事实上,我确实有一个3-2-1倒计时,但很多时候,倒计时仍然出现在倒计时结束。那么我猜这个滞后不可能真的被避免! – 2012-02-26 13:34:07

+0

我已经在iPhone和iPad上看到过许多知名游戏的滞后性,所以你可以尝试一个更稳定的连接,看看它是如何发展的,但是,我担心你有点卡住它。 – 2012-02-26 14:02:19

+0

这在Temple Run中发生了很多。在你的gc manager类中设置一个bool可能并不是一个坏主意,当游戏开始时你设置为false,如果设置为false,则使你的ping方法不会向gc发送认证请求。 – 2012-03-27 19:02:46