JSRUN 用代码说话

GameKit

编辑教程

GameKit

GameKit是iOS SDK中一个常用的框架。其核心功能有3个:

交互游戏平台Game Center
P2P设备通讯功能
In-Game Voice。

实例步骤

在链接 iTunes 时请确保拥有一个唯一的 App ID( unique App ID),App ID在我们应用程序更新 bundle ID时及在Xcode代码签名与相应的配置文件需要使用到。

创建新的应用程序和更新应用程序信息。在添加新的应用程序文档可以了解更多有关信息。

打开你申请的application,点击Manage Game Center选项。进入后点击Enable Game Center使你的Game Center生效。接下来设置自己的Leaderboard和Achievements。

下一步涉及处理代码,并为我们的应用程序创建用户界面。

创建一个single view application,并输入 bundle identifier 。

更新 ViewController.xib,如下所示

iOS GameKit

选择项目文件,然后选择目标,然后添加GameKit.framework

为已添加的按钮创建IBActions

更新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:@"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

输出

运行该应用程序,输出结果如下

gamekit_Output1

当我们单击显示排行榜时,屏幕显示如下:

iOS GameKit

当我们点击更新分数,比分将被更新到我们排行榜上,我们会得到一个信息,如下图所示

iOS GameKit

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟