iOS - GameKit
简介
GameKit是 iOS 应用程序框架,提供了领先及更多功能。在本在线教程中,我们将解释领先板上及更新分数步骤。
涉及的步骤
1. 在iTunes连接,确保您拥有一个独特的应用程序ID和相应的配置文件捆绑ID和代码签名,在Xcode当我们创建应用程序更新。
2. 创建一个新的应用和更新应用程序的信息。可以知道更多关于这个苹果添加新的应用程序文档。
3. 设置一个领先板上,在游戏中心管理应用程序的页面中添加一个排行榜,排行榜ID和分数类型。在这里,我们给领先板上编号为 yiibaiID。
4. 接下来的步骤是关系到我们的应用程序处理代码和创建UI。
5. 创建一个单一的视图应用程序并进入包标识符指定的标识符在iTunes连接。
6. 更新ViewController.xib,如下所示。
7. 选择项目文件,然后选择目标,添加GameKit.framework
8. 创建IBActions 为我们已经添加的按钮
9. 更新 ViewController.h 文件内容如下
#import <UIKit/UIKit.h> #import <GameKit/GameKit.h> @interface ViewController : UIViewController <GKLeaderboardViewControllerDelegate> -(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:@"tutorialsYiibai"]; } -(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
输出
现在,当我们运行程序时,我们会得到下面的输出。
当我们单击“显示领先者板上,我们会得到一个类似于下面的屏幕。
当我们点击更新分数,比分将被更新到我们领先板上,我们会得到一个警告,如下图所示。