📅  最后修改于: 2020-12-08 06:24:45             🧑  作者: Mango
Gamekit是一个框架,可为iOS应用程序提供排行榜,成就和更多功能。在本教程中,我们将说明添加排行榜和更新分数的步骤。
步骤1-在iTunes connect中,请确保您具有唯一的应用程序ID,并且当我们使用捆绑ID和使用相应的配置文件在Xcode中对代码进行签名来创建应用程序更新时。
步骤2-创建一个新的应用程序并更新应用程序信息。您可以在apple-add新应用程序文档中了解有关此内容的更多信息。
步骤3-在应用程序页面的“管理游戏中心”中设置排行榜,在其中添加单个排行榜,并提供排行榜ID和得分类型。在这里,我们将排行榜ID作为tutorialsPoint。
步骤4-下一步与处理代码和为我们的应用程序创建UI有关。
步骤5-创建一个单一视图应用程序,然后输入捆绑标识符,这是iTunes connect中指定的标识符。
步骤6-更新ViewController.xib,如下所示-
步骤7-选择您的项目文件,然后选择目标,然后添加GameKit.framework 。
步骤8-为我们添加的按钮创建IBAction 。
步骤9-更新ViewController.h文件,如下所示-
#import
#import
@interface ViewController : UIViewController
-(IBAction)updateScore:(id)sender;
-(IBAction)showLeaderBoard:(id)sender;
@end
步骤10-更新ViewController.m ,如下所示-
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer]
authenticateWithCompletionHandler:^(NSError *error) {
NSLog(@"Error%@",error);
}];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void) updateScore: (int64_t) score
forLeaderboardID: (NSString*) category {
GKScore *scoreObj = [[GKScore alloc]
initWithCategory:category];
scoreObj.value = score;
scoreObj.context = 0;
[scoreObj reportScoreWithCompletionHandler:^(NSError *error) {
// Completion code can be added here
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:nil message:@"Score Updated Succesfully"
delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[alert show];
}];
}
-(IBAction)updateScore:(id)sender {
[self updateScore:200 forLeaderboardID:@"tutorialsPoint"];
}
-(IBAction)showLeaderBoard:(id)sender {
GKLeaderboardViewController *leaderboardViewController =
[[GKLeaderboardViewController alloc] init];
leaderboardViewController.leaderboardDelegate = self;
[self presentModalViewController:
leaderboardViewController animated:YES];
}
#pragma mark - Gamekit delegates
- (void)leaderboardViewControllerDidFinish:
(GKLeaderboardViewController *)viewController {
[self dismissModalViewControllerAnimated:YES];
}
@end
运行应用程序时,将获得以下输出-
当我们点击“显示排行榜”时,我们将得到类似于以下内容的屏幕:
当我们单击“更新分数”时,分数将更新到我们的排行榜,并且我们将收到如下所示的警报-