2012-07-21 41 views
0

我的游戏不会出​​现在游戏中心,我一直试图弄清楚这一切,它一直在推动着我的坚果。我想用对象键“分数”将字符串保存到排行榜上。我必须错过一些非常明显的东西,但我不知道。对不起,打扰你们,但这只是让我疯狂大声笑。该包ID是moocowcurtis和我没有把它的info.plist我的排行榜有什么问题

gamecentermanager.h

#import <Foundation/Foundation.h> 
    @class GKLeaderboard, GKAchievement, GKPlayer; 

    @protocol GameCenterManagerDelegate <NSObject> 
    @optional 
    - (void) processGameCenterAuth: (NSError*) error; 
    - (void) scoreReported: (NSError*) error; 
    - (void) reloadScoresComplete: (GKLeaderboard*) leaderBoard error: (NSError*) error; 
    - (void) achievementSubmitted: (GKAchievement*) ach error:(NSError*) error; 
    - (void) achievementResetResult: (NSError*) error; 
    - (void) mappedPlayerIDToPlayer: (GKPlayer*) player error: (NSError*) error; 
    @end 

@interface GameCenterManager : NSObject 
{ 
NSMutableDictionary* earnedAchievementCache;  
id <GameCenterManagerDelegate, NSObject> delegate; 
} 

    //This property must be attomic to ensure that the cache is always in a viable state... 
@property (retain) NSMutableDictionary* earnedAchievementCache; 

@property (nonatomic, assign) id <GameCenterManagerDelegate> delegate; 

    + (BOOL) isGameCenterAvailable; 

- (void) authenticateLocalUser; 

- (void) reportScore: (int64_t) score forCategory: (NSString*) category; 
- (void) reloadHighScoresForCategory: (NSString*) category; 

- (void) submitAchievement: (NSString*) identifier percentComplete: (double) percentComplete; 
- (void) resetAchievements; 

- (void) mapPlayerIDtoPlayer: (NSString*) playerID; 
@end 

leaderboard.m文件

#import "leaderboard.h" 
     #import "GameCenterManager.h" 

@implementation leaderboard 

-(id) init 
{ 
    [[GameCenterManager sharedGameCenterObject] reportScore:score forCategory: kLeaderboardID]; 
    int highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"score"] intValue]; 
    return self; 
} 

    -(void)displayLeaderboard 
    { 
    GKLeaderboardViewController *leaderboardViewController = [[GKLeaderboardViewController  alloc] init]; 
leaderboardViewController.leaderboardDelegate = self; 

AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; 

[app.navController presentModalViewController:leaderboardViewController animated:YES]; 
} 



#pragma mark GameKit delegate 

    -(void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController 
{ 
AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; 
[app.navController dismissModalViewControllerAnimated:YES]; 
} 

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController 
{ 
AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; 
[app.navController dismissModalViewControllerAnimated:YES]; 
} 

// on "dealloc" you need to release all your retained objects 
- (void) dealloc 
{ [super dealloc]; 
} 
@end 

leaderboard.h

#import "GameCenterManager.h" 

    @interface leaderboard: CCLayer<GKLeaderboardViewControllerDelegate> 
@end 

GameCenterManager .h

#import <Foundation/Foundation.h> 


    @class GKLeaderboard, GKAchievement, GKPlayer; 



@protocol GameCenterManagerDelegate <NSObject> 
@optional 
    - (void) processGameCenterAuth: (NSError*) error; 
- (void) scoreReported: (NSError*) error; 
    - (void) reloadScoresComplete: (GKLeaderboard*) leaderBoard error: (NSError*) error; 
    - (void) achievementSubmitted: (GKAchievement*) ach error:(NSError*) error; 
    - (void) achievementResetResult: (NSError*) error; 
- (void) mappedPlayerIDToPlayer: (GKPlayer*) player error: (NSError*) error; 
    @end 

    @interface GameCenterManager : NSObject 
    { 
NSMutableDictionary* earnedAchievementCache; 
id <GameCenterManagerDelegate, NSObject> delegate; 
    } 

    //This property must be attomic to ensure that the cache is always in a viable state... 
    @property (retain) NSMutableDictionary* earnedAchievementCache; 

    @property (nonatomic, assign) id <GameCenterManagerDelegate> delegate; 

+ (BOOL) isGameCenterAvailable; 

- (void) authenticateLocalUser; 

- (void) reportScore: (score) forCategory: (NSString*) category; 
- (void) reloadHighScoresForCategory: (NSString*) category; 

- (void) submitAchievement: (NSString*) identifier percentComplete: (double) percentComplete; 
- (void) resetAchievements; 

- (void) mapPlayerIDtoPlayer: (NSString*) playerID; 
@end 

AppSpecificValues.h

#define kEasyLeaderboardID @"com.appledts.EasyTapList" 
    #define kHardLeaderboardID @"com.appledts.HardTapList" 
    #define kAwesomeLeaderboardID @"moocowcurtis" 
+1

它是一个错字,或者你真的要发送一个字符串作为得分?你可以看到,得分必须是int64_t。 – erkanyildiz 2012-07-21 08:10:30

+0

是否这样? (刚刚编辑它) – 2012-07-21 08:16:14

回答

0

你说“我想要保存与该对象值的字符串‘分数’到排行榜。”

但在这条线上,得分必须的int64_t不串:

[[GameCenterManager sharedGameCenterObject] reportScore:score forCategory: kLeaderboardID]; 
+0

好吧,我用gamecentermanager替换了int64_t,但仍然没有工作。 – 2012-07-21 08:52:11

+1

我相信你现在应该停止做软件开发。你不知道你在做什么。 – erkanyildiz 2012-07-21 10:45:58