ios - 自定义游戏中心 GKTurnBasedMatchmakerViewController

标签 ios objective-c game-center gkturnbasedmatch

我正在尝试创建一个自定义 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/

相关文章:

ios - 如何根据时间调用2个号码

Objective-C 解析器扑克手牌历史

ios - 针对 Game Center 身份验证的 Xcode 4.6 ARC 警告

ios - 游戏中心分数报告问题

objective-c - 游戏中心登录

iOS 核心蓝牙 :Sending data from central and getting response from peripheral

ios - DateFormatter 为 iOS 11(转换为 UTC)和 iOS 10(未转换为 UTC)提供不同的日期

ios - Swift 中的 dispatch_once 单例

ios - Objective-c 将 subview 添加到 View 底部

objective-c - 如何使用代码读取协同设计信息