0

ついにリーダーボードが表示されるようになりました。ここで、スコアがポップアップするように実装する必要があります。私のスコアはという名前で に
保存されます。NSStringNSUserDefaultsscore

ここにいくつかのコードがあります:

Game_CenterViewController.h

#import <UIKit/UIKit.h>
#import <GameKit/GameKit.h>
#import "GameCenterManager.h"

@class GameCenterManager;

@interface Game_CenterViewController : UIViewController <UIActionSheetDelegate, GKLeaderboardViewControllerDelegate, GKAchievementViewControllerDelegate, GameCenterManagerDelegate> {
    GameCenterManager *gameCenterManager;
    int64_t  currentScore;
    NSString *currentLeaderBoard;
}

@property (nonatomic, retain) GameCenterManager *gameCenterManager;
@property (nonatomic, assign) int64_t currentScore;
@property (nonatomic, retain) NSString* currentLeaderBoard;
@end

Game_CenterViewController.m

#import "Game_CenterViewController.h"
#import "AppSpecificValues.h"
#import "GameCenterManager.h"

@implementation Game_CenterViewController
@synthesize gameCenterManager;
@synthesize currentScore;
@synthesize currentLeaderBoard;

- (void)dealloc {
    [gameCenterManager release];
    [currentLeaderBoard release];
    [currentScoreLabel release];
    [super dealloc];
}

#pragma mark - View lifecycle

- (void)viewDidLoad {
    [super viewDidLoad];
    self.currentLeaderBoard = thescore101;
    self.currentScore = score    
    if ([GameCenterManager isGameCenterAvailable]) {
        self.gameCenterManager = [[[GameCenterManager alloc] init] autorelease];
        [self.gameCenterManager setDelegate:self];
        [self.gameCenterManager authenticateLocalUser];
    } else {
        // The current device does not support Game Center.
    }
}

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {
    [self dismissModalViewControllerAnimated: YES];
    [viewController release];
}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.gameCenterManager = nil;
    self.currentLeaderBoard = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

現在のスコアは、私が入れようとしているところですNSString

4

1 に答える 1

0

編集: currentScore には int を使用する方がよいと思います。

これはあなたが探しているものですか?

- (void)submitMyScore:(int64_t)score
{

    GKScore *myScoreValue = [[[GKScore alloc] initWithCategory:@"yourCat"] autorelease];
    myScoreValue.value = (int)score;

    [myScoreValue reportScoreWithCompletionHandler:^(NSError *error){
        if(error != nil){
            NSLog(@"Score Submission Failed");
        } else {
            NSLog(@"Score Submitted: %d",(int)score);
        }

    }];
}

したがって、追加する必要がありますIBAction

- (IBAction)buttonPressed
{
    [self submitMyScore:currentScore];
}

これと SEND MY SCORE ボタンをこの IBAction に接続すると、スコアが送信されます。

これがお役に立てば幸いです。

于 2012-07-21T15:10:26.013 に答える