2

我正在使用我正在实现 Game-kit 的 cocos2d 游戏。我的游戏支持多人游戏选项。实际上作为给定的示例Raywenderlich 链接。我是 Game-kit 的 GKTurnBasedMultiplayer 类。但是现在当第一个玩家连接到游戏中心并选择“立即播放”选项时,它会自动为另一个玩家提供问题。但问题是它直接连接并开始比赛,而不是等待另一个玩家。我在用

[[GCTurnBasedMatchHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:4 viewController:viewConroller];

用于连接和与其他玩家一起玩,但直接连接比赛。

我想等待另一个球员。这就是问题所在。我也在使用 GCTurnBasedMatchHelper 类。

4

1 回答 1

2

这是 GameKit API 的预期功能。在回合制比赛中,比赛数据与第一回合一起提交,在自动比赛的情况下,在 Game Center在第一个提交回合后找到对手之前,该玩家是未确定的玩家。

这背后的逻辑是回合制比赛的“轮到你了”的原则。如果 Game Center 在您提交第一个回合之前将您与一名玩家匹配,则该其他玩家将被邀请参加轮到他们的比赛,这是非常不可取的。

正如 Apple 文档所说,您必须考虑比赛参与者 playerID 属性返回 nil 的情况,并在您的块代码中进行相应处理。在你轮到他们之前,对手将是零(这自然发生在创造者的第一轮之后)。如果您仍然对此感到困惑,请参考Turn-Based Game Center API

于 2012-10-11T04:21:33.433 回答