我正在使用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/),因为这在技术上是不可知的,但这意味着我需要实现相当多的东西(登录,通知......)
我无法想象我是第一个面对这个的人,但似乎没有关于这个主题的例子。
答案 0 :(得分:3)
您不必为此使用REST API,即使这肯定是一种选择。
更简单的方法是通过interfacing使用特定于平台的代码。
未直接集成到libGDX中的所有东西都不会通过"写一次,到处运行"。这也适用于Google Play游戏服务提供的成就,排行榜和其他内容。但是,幸运的是,GPGS将这些功能集中在一个框架中,至少适用于Android,iOS和Web。
那么您要做的是将平台特定的库依赖项添加到您生成的平台特定项目中。然后实现通用接口,例如: G。使用AchievementHandler
等方法unlockAchievement(String achievementId)
。{/ 1>
然后,您将通过使用GPGS的AndroidAchievementHandler
实现此接口。同样适用于IOSAchievementHandler
。
在核心代码中,您只会使用AchievementHandler
,每个平台都会使用自己的实现。