我目前正在为Android开发一个多人纸牌游戏,我想使用Google游戏服务实时多人api。通过阅读文档,我知道最后,客户收到的每条消息都将称为RealTimeMessageReceivedListener()。我的问题是,如果我的应用程序当前处于工作状态,则何时调用该方法?
因为当前我在GUI中在自己的线程中运行,所以在模型视图控制器中拆分了应用程序。控制器轮询gui以获取输入,并调用模型接口以更改数据。
因此,如果我在控制器线程中运行多人游戏部分,则在调用MessageReceiver时将停止我的应用程序流,在其中执行一些操作,然后在它的旧位置继续运行,例如软件中断,或者是MessageReceiver调用在其他所有操作完成后进行缓冲和调用。如果是这样的话,我想我必须使用第三个线程。
我目前正在使用libgdx,因此未触及任何android特定的东西。也许有人将libgdx与护目镜游戏服务的多人游戏功能相结合,并且可以告诉我更多信息,导致我目前对如何将这些东西放在一起有些迷失。我知道那里有使用libgdx实现游戏服务的教程,但是没有涉及多人游戏部分。
提前致谢。
最佳答案
我认为您正在问RealTimeMessageReceivedListener
异步回调将在哪个线程上运行。据我所知,回调将在主要的Android UI线程(* 1)上运行。该线程与Libgdx主UI线程(* 2)不同。
这意味着Google Play服务回调可以独立于您的主要Libgdx逻辑运行。如果您的GPS回调使用Libgdx Application.postRunnable API,则可以使您的主Libgdx线程与所有其他内容按顺序处理所有传入的更改(排队的可运行对象在每个渲染循环的开始执行)。
(* 1)搜索“线程” in this Google Developers blog post。我找不到更好的参考。
(* 2)http://www.badlogicgames.com/forum/viewtopic.php?f=21&t=1298
关于android - Google Play服务实时多人消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23475674/