Libgdx 游戏使用 Google 在 iOS 和 Android 上玩游戏服务

Libgdx game using Google Play Game Services on iOS and Android

我正在使用 Libgdx 创建游戏,并希望在 iOS 和 Android 设备上集成播放器、排行榜和高分。理想情况下,我会使用 Google Play Game Services,但我可能会被说服使用其他技术(如 Parse)。

有使用 Google 播放服务的教程 Android 设备:(http://theinvader360.blogspot.co.uk/2013/10/google-play-game-services-tutorial-example.html). But as far as I understand, this will not work for iOS devices (according to this:https://developers.google.com/games/services/integration/)

也有在 iOS 设备上执行此操作的教程,使用 RoboVM:http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=11424 但据我了解,这仅适用于 iOS 设备。

由于 libgdx 的好处之一是只写一次但 运行 跨平台, 我的问题如下: 如何在 iOS 和 Android.

上集成 Google Play 游戏服务和 运行

在我看来,答案是使用 REST API (https://developers.google.com/games/services/web/api/),因为这在技术上是不可知的,但这意味着我需要实现很多东西(登录, 通知...)

我无法想象我是第一个遇到这个问题的人,但似乎没有关于该主题的示例。

您不必为此使用 REST API,尽管那肯定是一个选项。

更简单的方法是通过 interfacing.

使用平台特定代码

未直接集成到 libGDX 中的所有内容都无法通过 "write once, run everywhere" 运行。这也适用于 Google Play 游戏服务提供的成就、排行榜和其他内容。但是,您很幸运,GPGS 将这些功能统一在一个框架内,至少 Android、iOS 和 Web。

所以您要做的是将特定于平台的库依赖项添加到您生成的特定于平台的项目中。然后实现一个通用接口,e。 G。 AchievementHandler 使用 unlockAchievement(String achievementId).

等方法

然后您将通过使用 GPGS 的 AndroidAchievementHandler 实现此接口。同样适用于 IOSAchievementHandler.

在您的核心代码中,您将只使用 AchievementHandler,每个平台将使用它自己的实现。