libGDX与Kotlin
移动游戏开发(8)

原文地址:Integrating Gamecenter into libGDX | Java | Multi-OS Engine | #8


由于Google Play Games Services并不完全能在iOS上集成(分数不能提交),本篇文章讲着重介绍实现使用Multi-OS Engine(简称MOE)对Game Center集成。这并不需要原生的Java框架转换器,因为MOE自从1.2版本之后就在apple.gamekit包中提供了GameKit的绑定。

即使苹果在iOS 10上删除了Game Center应用,用户依然可以登录(设定 -> Game Center)。

处理Game Center玩家身份认证

Game Center玩家身份认证非常简单。只需要注册一次AuthenticateHandler对象,便会自动处理相关过程。

https://gist.github.com/Majirefy/eb65d99cb7e7dba7ae1eaf99f870ca53

创建处理排行榜的方法

为了显示个性化的排行榜,或为了获取最高分数,需要创建一个排行榜处理方法,在此方法中得到一个包含所有排行的数组。接着设定玩家和时间范围,例如得到本日最高分数。

https://gist.github.com/Majirefy/95165d1c481e080bdc9771f1d98ab788

在处理方法中加载排行榜

当加载结束后,为防止多次加载请求,将一个布尔变量设置为false来控制加载。

https://gist.github.com/Majirefy/a8c36077939b5b5da13ef77ceb11aa77

如果在使用GKScore的过程中抛出ClassCastException异常,在类中加入如下代码:

https://gist.github.com/Majirefy/aadf8ae2a4c8ee80cf84bd51372221e3

向排行榜提交分数

向Game Center的排行榜提交一个数值也同样简单,只需要设定好排行榜的identifier身份(可以在iTunes Connect的Game Center页面找到)。如果nsError对象为null,那么分数提交成功;否则若不是null则提交失败。

https://gist.github.com/Majirefy/ce3236a3e866808b57e222979d1df3a3

检查玩家是否登录

每次提交分数、显示排行榜等操作的时候,需要检查用户是否被Game Center授权。

https://gist.github.com/Majirefy/174d2fdf2f5a5fc0cafc0dc25b311aa2

显示警告对话框

当用户无法登录Game Center的时候,可以通过对话框来提示用户手动登录。

https://gist.github.com/Majirefy/6aa32b64053b2d8f77db49425e34f3a9

Majirefy

Majirefy

喜欢折腾,喜欢各种各样的生活。曾经年少不懂事,看着别人写代码的样子感觉好帅,于是走上了半个不归路……然而,比起代码更喜欢写一些纯粹的文章,却经常因为自我不满意删掉重来。喜欢分享,无论是生活美好的瞬间,还是技术上的发现,虽然经常苦恼技术能力不强。由于喜欢买qiong买qiong买qiong,所以时常写一些类似使用体验的文章。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。