6

tvOS でゲーム センターのリーダーボードを開くにはどうすればよいですか? このコードを iPhone ゲームに使用しましたが、「leaderboardIdentifier」は tvOS では利用できません。

AppleTV で同じリーダーボードを使用する予定です (同じゲームになります)。

ご協力ありがとうございました、ステファン

    @IBAction func handleGameCenter(sender: UIButton) {
        let gcViewController = GKGameCenterViewController()
        gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
        gcViewController.leaderboardIdentifier = gamePrefix + "Leaderboard"
        gcViewController.gameCenterDelegate = self

        // Show leaderboard
        self.presentViewController(gcViewController, animated: true, completion: nil)
    }

    func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
        gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
    }
4

3 に答える 3

13

「利用可能なデータがありません」画面にも問題がありましたが、最終的に解決しました。これは、tvOSでゲームセンターのリーダーボードを開くのに役立ちました:

  1. Assets.xcassets を開きます (アプリのアイコン/起動画面を設定した同じファイル)。
  2. appicon/launchsreen でパネルを右クリックし、Game Center -> New Apple TV Leaderboard を選択します。
  3. 新しいリーダーボードのグラフィックを追加
  4. リーダーボードが右側のパネルのアセットファイルで選択されている間に、識別子フィールドを見つけて、リーダーボードの識別子をそこに置きます
  5. このコードを使用してリーダーボードを開きます:

    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
    gcViewController.gameCenterDelegate = self;
    [self presentViewController:gcViewController animated:YES completion:nil];
    
于 2015-10-20T18:07:02.600 に答える
1

これだけでうまくいくようです:

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController: gameCenterController animated: YES completion:nil];
}
于 2015-10-07T20:53:07.683 に答える