Warning: Undefined array key "custom_message" in /www/wwwroot/bbs.aaronyang.cc/wp-content/plugins/wpcopyrights/index.php on line 105

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

相关推荐

  • id

    文章目录id概要主要用途选项参数返回值例子注意 id 打印真实以及有效的用户和所在组的信息 概要 id [OPTION]… [USER]… 主要用途 没有选项时,打印指定用…

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

    文章目录lvscan补充说明语法选项实例 lvscan 扫描逻辑卷 补充说明 lvscan命令 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有…

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

    文章目录pfctl补充说明激活配置控制 pfctl PF防火墙的配置命令 补充说明 pfctl命令 是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UN…

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

    文章目录tcpreplay补充说明选项实例 tcpreplay 将PCAP包重新发送,用于性能或者功能测试 补充说明 简单的说, tcpreplay 是一种pcap包的重放工具,它…

    入门教程 2024年 3月 11日
  • Java 基本数据类型

    变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类…

    2023年 3月 4日
  • runlevel

    文章目录runlevel补充说明语法知识扩展 runlevel 打印当前Linux系统的运行等级 补充说明 runlevel命令 用于打印当前Linux系统的运行等级。 语法 ru…

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

    文章目录grpunconv补充说明语法实例 grpunconv 用来关闭群组的投影密码 补充说明 grpunconv命令 用来关闭群组的投影密码。它会把密码从gshadow文件内,…

    入门教程 2023年 12月 14日
  • Helm | Helm 展示所有

    文章目录helm show all简介可选项从父命令继承的命令请参阅 helm show all 显示chart的所有信息 简介 该命令检查chart(目录、文件或URL)并显示所…

    入门教程 2023年 12月 14日
  • CentOS安装gcc组件

    CentOS不带gcc及组件,要使用就需要安装。 一键安装 yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件

    2021年 7月 13日
  • umount

    文章目录umount补充说明语法选项参数实例 umount 用于卸载已经加载的文件系统 补充说明 umount命令 用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文…

    入门教程 2024年 3月 11日
Translate »