【问题标题】:Displaying a Game Center Directly from a SKScene直接从 SKScene 显示游戏中心
【发布时间】:2014-08-27 05:05:38
【问题描述】:

一段时间以来,我一直在尝试在 SKScene 上显示游戏中心排行榜,但我无法弄清楚我查看了多篇文章.. 来自 Google 和 Here,当我点击带来的按钮时你来到这个场景,它会把你带到那里并显示一个灰屏,就是这样,我已经验证了播放器和所有内容。视图是否可能在幕后? 这是我正在使用的场景

#import "DMLeaderBoard.h"
#import "DMGameKitHelper.h"


@implementation DMLeaderBoard


-(id)initWithSize:(CGSize)size {

    if (self = [super initWithSize:size]) {

        [self showLeaderboard];

    }
    return self;
}



-(void)showLeaderboard {

    GKGameCenterViewController *leaderboardController = [[GKGameCenterViewController alloc] init];
    if (leaderboardController != NULL)
    {
        leaderboardController.leaderboardIdentifier = @"1";
        leaderboardController.viewState = GKGameCenterViewControllerStateLeaderboards;
        leaderboardController.gameCenterDelegate = self;
        UIViewController *vc = self.view.window.rootViewController;
        [vc presentViewController: leaderboardController animated: YES completion:nil];
    }
}


- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)viewController
{
    UIViewController *vc = self.view.window.rootViewController;
    [vc dismissViewControllerAnimated:YES completion:nil];
}

@end

【问题讨论】:

    标签: objective-c uiviewcontroller sprite-kit skscene skview


    【解决方案1】:

    didMoveToView 中运行showLeaderboard 方法,因为在初始化期间self.viewnil

    【讨论】:

    • 非常感谢 :-) 我能问一下你从哪里得到的文档信息或者你只是知道吗?
    • 没有明确表示,但可以推断。当您执行 [[Scene alloc] init..] 时,场景对视图一无所知,只有在您执行 [skView presentScene:newScene](例如在视图控制器中)时才会将其分配给视图。节点也是如此:[Node node] 在初始化期间不知道 self.scene,只有在 [self addChild:newNode] 之后,新节点才具有有效的 self.scene 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多