基于回合制的多人游戏(Game Center,iOS) - 关闭GKMatchmakerViewController并呈现自己的用户界面以进行转弯

时间:2014-08-13 09:04:29

标签: ios objective-c uiviewcontroller segue multiplayer

我正在实施一款带游戏中心的回合制多人游戏。第一个视图控制器(ViewController)显示菜单,并且已经可以在按钮点击上显示GKTurnBasedMatchmakerViewController。邀请朋友参加游戏后,GKTurnBasedMatchmakerViewController消失,游戏中心启动'游戏。问题是游戏并没有真正开始,因为它属于另一个视图控制器(SecondViewController)。我无法使用segues,因为我不知道如何将segue标识符分配给GKTurnBasedMatchmakerViewController(因为它不在Storyboard中)。我知道必须有可能实现它,因为许多应用程序使用此功能。 Apple开发人员文档使用自定义segue解决了这个问题,但这怎么可能?有什么想法吗?

Apple开发人员文档:

'通常情况下,您的游戏会取消红娘视图控制器,并立即启动自己的用户界面以允许玩家转弯。' >>这就是我想做的事情!

-(void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFindMatch:(GKTurnBasedMatch *)match
{
    [self dismissViewControllerAnimated:YES completion:nil];
    [self performSegueWithIdentifier:@"GamePlayScene" sender:match];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"GamePlayScene"])
    {
        MyGamePlayViewController* gameVC = (MyGamePlayViewController*) segue.destinationViewController;
        gameVC.delegate = self;
        gameVC.match = (GKTurnBasedMatch*) sender;
    }
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

您必须在" Main.storyboard"中创建两个" View Controller"(Scene)。一个用于所有游戏中心的东西"(默认:GameViewController),另一个用于游戏逻辑"(MyGamePlayViewController)。在那之后按住" ctrl"键并将第一个场景拖动到另一个场景并选择"以模态方式呈现"。 见bild。 enter image description here

照顾箭头,你必须设置你的标识符#34;。

希望这会有所帮助。祝你好运。