使用iOS Game Center Challenge发送对象?

时间:2014-02-26 04:39:16

标签: ios iphone ios7 game-center sprite-kit

我正在开发一款iOS游戏,其中玩家构建一个对象并使用该对象完成定时挑战。我想使用Game Center让玩家能够使用相同的玩家构建对象来挑战他的朋友以击败时间。挑战的时间部分很简单,但我如何向挑战玩家建造物体?我知道如果球员参与比赛,你可以发送对象,但是比赛并不适合我想做的事情。如果对象可以作为NSDictionary(或其他对象)与挑战一起发送,那将是最好的。这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:2)

我认为您有两种方法可以实现这一目标:

使用分数上下文

您在游戏中心游戏中实施leaderboards,并将挑战完成时间用作您的分数。您的GKScore对象具有context属性,您可以使用该属性来传输对象的引用。 context property是整数值。您需要实现自己的服务器来存储实际对象,或者使用后端即服务,如Parse

当您发出GKScoreChallenge时,其他玩家可以阅读score属性,检索context,然后与您的服务器联系以检索该对象并设置他的游戏以尝试击败了挑战。

使用回合制匹配

如果您真的不想设置自己的服务器,可以使用回合制匹配,但它有局限性。当玩家构建对象时,您可以创建基于回合的匹配。在这里,使用matchData对象的GKTurnBasedMatch属性可以轻松存储对象。然后挑战一个朋友将邀请加入这个特定的回合制比赛。

最大的问题是你只能挑战一个玩家建造的物体中的16个朋友(一场比赛中的最大玩家数量),并且你的朋友必须轮流。

通过使用相同的游戏数据创建更多匹配,您可以解决的玩家数量的限制。

必须等待一个朋友转弯,你可以通过设置转弯超时相当低来解决(不确定是否有低的限制),所以感觉没有转弯。或者您可以使用交换系统将转弯传递给在转弯实际开始之前完成比赛的人。

答案 1 :(得分:0)

我认为你要找的东西可能就像Turn-Based Matches