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

我正在使用Libgdx制作游戏,并希望在iOS和Android设备上集成玩家,排行榜,高分。 理想情况下,我会使用谷歌游戏服务,但我可以说服使用其他技术(如Parse)。

有一些教程可以为Android设备使用Google Play服务:( http://theinvader360.blogspot.co.uk/2013/10/google-play-game-services-tutorial-example.html )。 但据我了解,这不适用于iOS设备(根据这一点: https : //developers.google.com/games/services/integration/ )

还有一些教程可以在iOS设备上使用RoboVM: http : //www.badlogicgames.com/forum/viewtopic.php? f = 11 & t = 11424,但据我所知,这只适用于iOS设备。

由于libgdx的一个好处是编写一次但运行跨平台,我的问题如下:如何与Google Play游戏服务集成并在iOS和Android上运行。

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

我无法想象我是第一个面对这个的人,但似乎没有关于这个问题的例子。

您不必为此使用REST API,即使这肯定是一种选择。

更简单的方法是通过接口使用特定于平台的代码。

未直接集成到libGDX中的所有内容都无法通过“一次编写,随处运行”来工作。 这也适用于Google Play游戏服务提供的成就,排行榜和其他内容。 但是,幸运的是,GPGS将这些function集中在一个框架中,至少适用于Android,iOS和Web。

那么您要做的是将平台特定的库依赖项添加到您生成的平台特定项目中。 然后使用unlockAchievement(String achievementId)等方法实现通用接口,例如AchievementHandler

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

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