【问题标题】:iOS Development: When receiving a Game Center invite, how do I obtain the GKMatch object?iOS开发:收到Game Center邀请时,如何获取GKMatch对象?
【发布时间】:2011-01-09 06:53:05
【问题描述】:

我正在构建一个使用 Game Center 的 iPhone 游戏,但我很难理解如何开始一个通过收到朋友的游戏邀请开始的比赛游戏。 docs 这么说……

acceptedInvite 参数是 应用程序收到时非零 直接来自他人的邀请 播放器。在这种情况下,另一 玩家的应用程序已经 创建了匹配请求,所以这个 您的申请副本不需要 创建一个。

据此,我不需要创建匹配请求,因为发出邀请的玩家已经创建了匹配请求。如果是这样,我如何获得向/从其他玩家发送/接收数据所需的 GKMatch 对象?我知道获取 GKMatch 对象的唯一方法是创建一个匹配请求并调用 findMatchForRequest 方法,文档说我不应该这样做。

他们为此拥有的唯一代码示例涉及创建和使用GKMatchmakerViewController,我无法使用它,因为我正在创建自己的自定义视图。

非常感谢您的智慧!

【问题讨论】:

    标签: iphone ipad ios gamekit game-center


    【解决方案1】:

    我收到了一位 Apple 工程师对此的回复,他是这么说的……

    您可以使用自定义进行自动匹配 意见,但没有办法使用 不使用邀请 GKMatchmakerViewController。那么你 应遵循代码示例。

    我想我的 UI 的一致性必须彻底打破。

    【讨论】:

    • 你有没有设法让邀请工作,即使使用 GKMatchMakerViewController? iPhone 开发者论坛上有很多帖子抱怨邀请无法正常工作。
    • Carcassonne 以某种方式使用了支持使用 GameCenter 邀请的自定义视图。到目前为止,我还没有弄清楚如何,当我遇到这个问题时,我正要发布我自己的问题。所以我认为这里的故事比 Apple 透露的要多,但不幸的是我无法填补缺失的部分。
    • 很沮丧,这似乎不被支持!
    • 顺便问一下,你知道工程师指的是哪个代码示例吗?
    【解决方案2】:

    我已经解决了游戏中心邀请问题。所以请按照以下步骤操作:-
    1- 检查您的推送通知是否已在设置中打开,好友邀请是否已在您的游戏中心帐户设置中打开。
    2-现在安装最新版水果忍者游戏
    3-打开游戏中心并登录,然后将其置于后台。
    4-开水果忍者直接进入新游戏=>多人游戏=>游戏中心
    5-现在您将看到两个选项(在右上角邀请朋友和立即玩)
    6-点击立即播放按钮,游戏中心将为您找到不请自来的游戏。
    7-当游戏开始时,您可以在右上角看到您不请自来的朋友的名字。游戏结束后,直接进入后台游戏中心和游戏区,进入游戏列表中的水果忍者。在这里,您将看到最近播放的选项,触摸它。在这里,您将在列表顶部看到一个玩家姓名(与您一起玩的人)触摸该姓名并立即向他发送好友请求。
    8-如果他接受请求转到朋友=>(您最近添加的朋友)=>一起玩游戏(水果忍者)=>点击播放(右上角)
    9-现在游戏将打开,您将看到GC页面。点击邀请按钮并选择最近添加的朋友,然后发送,等待他并准备玩。

    现在你的gc id已经验证了,你可以邀请你的任何朋友,可以玩任何游戏(支持邀请功能)

    【讨论】:

    • 这与OP的问题无关。
    【解决方案3】:

    尽管苹果工程师说了这么多,不如试试这样的方法来邀请而不使用自定义视图:

    [[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {
    
    
    
    [GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) {
        for (GKPlayer *player in players) {
            NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way
        }
    }];
    

    }];

    现在,如果用户在自定义视图上从该列表中选择球员,GKMatchRequest 有一个名为 playerToInvite 的属性,我们可以将这些球员设置为该属性。并使用此请求以编程方式创建匹配项。

    这看起来很有可能,但老实说我还没有尝试过

    【讨论】:

    • 这篇文章是关于接收邀请,而不是发送。
    猜你喜欢
    • 2017-08-06
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多