IOS GameKit


简介

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

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

实例步骤

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

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

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

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

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

6.更新 ViewController.xib,如下所示

gamekitInterface

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];
        ;

    }];
}
-(IBAction)updateScore:(id)sender{
    [self updateScore:200 forLeaderboardID:@"runoob"];
}
-(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

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

gamekit_Output2

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

gamekit_Output3

若文章对你有帮助,可以点赞或打赏支持我们。发布者:lyh会员,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/ios-gamekit/

(0)
lyhlyh会员认证作者
上一篇 2023年 4月 1日 下午9:06
下一篇 2023年 4月 1日 下午9:10

相关推荐

  • Helm | Helm 变量

    文章目录helm env简介可选项从父命令继承的命令请参阅 helm env helm 客户端环境信息 简介 Env 打印所有Helm使用的环境信息 可选项 从父命令继承的命令 -…

    入门教程 2023年 12月 14日
  • nmap

    文章目录nmap补充说明语法选项参数实例 nmap 网络探测和安全审核 补充说明 nmap命令 是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。 语法 …

    入门教程 2024年 1月 10日
  • pstack

    文章目录pstack补充说明实例 pstack 显示每个进程的栈跟踪 补充说明 pstack命令 可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。…

    入门教程 2024年 3月 1日
  • stat

    文章目录stat补充说明语法选项参数实例 stat 用于显示文件的状态信息 补充说明 stat命令 用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 语…

    入门教程 2024年 3月 11日
  • Docker 更改默认存储目录

    由于安装docker,默认的存储目录在根磁盘,会导致我们在拉取镜像的时候,更目录的空间越来越小,不修改存储目录的情况下,会导致我们可用空间越来越小,最终导致根目录不够用。根目录大点…

    2021年 11月 4日
  • dpkg-split

    文章目录dpkg-split补充说明语法选项参数实例 dpkg-split Debian Linux中将大软件包分割成小包 补充说明 dpkg-split命令 用来将Debian …

    入门教程 2023年 12月 7日
  • systool

    文章目录systool补充说明语法选项参数实例 systool 显示基于总线、类和拓扑显示系统中设备的信息 补充说明 systool命令 指令显示基于总线、类和拓扑显示系统中设备的…

    入门教程 2024年 3月 11日
  • rsh

    文章目录rsh补充说明语法选项参数 rsh 连接远程主机并执行命令 补充说明 rsh命令 用于连接到远程的指定主机并执行指定的命令。 语法 rsh(选项)(参数) 选项 -d:使用…

    入门教程 2024年 3月 4日
  • logwatch

    文章目录logwatch补充说明语法选项实例 logwatch 可定制和可插入式的日志监视系统 补充说明 logwatch命令 是一个可定制和可插入式的日志监视系统,它通过遍历给定…

    入门教程 2023年 12月 19日
  • Map

    文章目录Map什么是 map?如何创建 map?向 map 中插入元素访问 map 中的元素遍历 map 中的所有元素删除元素结构体 map (Map of Structs)map…

    2023年 12月 5日
Translate »