我已經成功地將Game Center功能添加到我的應用程序。當應用程序打開時,它成功驗證用戶並顯示「歡迎回來(用戶名)」橫幅。iOS 7排行榜遊戲中心
但是,我不確定如何將排行榜添加到遊戲中。我想知道是否有人可以幫助我答:幫助我瞭解如何將我在iTunes連接中製作的排行榜與應用程序鏈接起來,並讓排行榜的價值高居榜首。和B:讓排行榜在所有排名中出現在應用程序中。
到目前爲止,我的應用中的所有gamecenter代碼都在下面。
接口文件:
#import <Foundation/Foundation.h>
#import <GameKit/GameKit.h>
@interface GCHelper : NSObject {
BOOL gameCenterAvailable;
BOOL userAuthenticated;
}
@property (assign, readonly) BOOL gameCenterAvailable;
+ (GCHelper *)sharedInstance;
-(void)authenticateLocalUser;
@end
實現文件:
#import "GCHelper.h"
@implementation GCHelper
@synthesize gameCenterAvailable;
#pragma mark initialization
static GCHelper *sharedHelper = nil;
+ (GCHelper *) sharedInstance {
if (!sharedHelper) {
sharedHelper = [[GCHelper alloc] init];
}
return sharedHelper;
}
- (BOOL)isGameCenterAvailable {
Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
NSString *reqSysVer = @"4.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
BOOL osVersionSupported = ([currSysVer compare:reqSysVer
options:NSNumericSearch] != NSOrderedAscending);
return (gcClass && osVersionSupported);
}
- (id) init {
if ((self = [super init])) {
gameCenterAvailable = [self isGameCenterAvailable];
if(gameCenterAvailable) {
NSNotificationCenter *nc =
[NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(authenticationChanged)
name:GKPlayerAuthenticationDidChangeNotificationName
object:nil];
}
}
return self;
}
-(void)authenticationChanged {
if ([GKLocalPlayer localPlayer].isAuthenticated && !userAuthenticated) {
NSLog(@"Authentication changed: player authenticated.");
userAuthenticated = TRUE;
} else if (![GKLocalPlayer localPlayer].isAuthenticated && userAuthenticated) {
NSLog(@"Authentication changed: player not authenticated");
userAuthenticated = FALSE;
}
}
#pragma mark User Functions
-(void) authenticateLocalUser {
if(!gameCenterAvailable) return;
NSLog(@"Authentication local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:nil];
} else {
NSLog(@"Already authenticated!");
}
}
@end
好了,所以。代碼現在正在工作,但是當訪問排行榜的代碼返回錯誤時,我沒有代碼來處理它,而是讓應用程序進入凍結狀態並使其無法運行。
代碼被稱爲訪問排行榜:
- (void) presentLeaderboards
{
GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init];
gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
gameCenterController.gameCenterDelegate = self;
[self presentViewController:gameCenterController animated:YES completion:nil];
}
您是否在Game Center上使用了Ray Wenderlich教程?你的代碼看起來很熟悉 – WMios
這是一個YouTube教程,結束之前,它告訴我如何添加排行榜我不知道上傳者 – user3752308
看看我的答案,這是非常直接的和有效的。我在應用商店中有兩款遊戲,並提交了第三款遊戲,他們都使用這個遊戲。這也適用於單個遊戲中的多個排行榜! – WMios