我正在尝试创建一个自定义 View Controller 来向用户显示事件游戏(类似于 Letterpress 的做法)。
我目前正在尝试对 GKTurnBasedMatchmakerViewController 进行子类化,但我不知道如何隐藏默认元素(用于邀请/显示现有游戏)并添加我自己的元素。我目前一直在尝试记录一些事情,以确保我可以访问正在进行的比赛、当前玩家 ID 等(我最近发现的),但我对如何从界面开始感到困惑。
目前不确定哪些代码(如果有)相关。请告诉我。
希望:隐藏当前元素。我假设我可以像之后的任何其他应用程序一样构建界面。
谢谢
- 史蒂文
最佳答案
我不认为子类化是个好主意。从一个干净的 UIViewController 开始,然后从那里构建 UI。然后实现所有必要的方法。
将自己设置为代表:
[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;
所以你得到委托(delegate)事件,例如:
handleInviteFromGameCenter
handleTurnEventForMatch
handleMatchEnded
etc.
添加一个 UITableView,并从游戏中心加载所有匹配项:
[GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error) {
// Add matches to table view
}];
不要忘记先对玩家进行身份验证:
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *loginVC, NSError *error)
{
};
以编程方式为比赛加注星标:
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
{
}];
等查看完整 API 的文档。
关于ios - 自定义游戏中心 GKTurnBasedMatchmakerViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596415/