Articles of 谷歌玩游戏

Google Play游戏服务; 邀请系统

在我的Android游戏中,我希望玩家能够邀请他们的朋友参加将在以后的日期和时间进行的游戏比赛。 创建比赛的玩家选择此日期和时间。 我希望这些邀请能够等待,这意味着用户不必立即接受邀请,而是将它们放在待处理列表中,只要它在日期之前,就可以随时接受它们。游戏将要发生的时间。 游戏本身是一个基于实时的游戏。 我想过使用Google Play游戏服务来完成游戏中的这个和其他事情,比如成就等等,我相信它可以很好地与实际游戏配合使用。 它跨平台工作的事实也是一大优点。 问题是游戏服务如何处理邀请。 来自Google开发者文档: https : //developers.google.com/games/services/common/concepts/realtimeMultiplayer 会议室 :举办游戏的虚拟会议空间。 可以邀请玩家加入房间,或自动匹配。 连接到同一房间的玩家可以互相交换游戏数据。 参与者 :可以参与游戏的玩家。 本地玩家可以从他们的圈子向其他玩家发送邀请以加入房间,或者请求与随机玩家自动匹配。 发送邀请的玩家将看到接受游戏邀请的通知。 如果玩家接受邀请,他们将加入该房间。 房间中参与者的状态由Google Play游戏服务管理并发送给游戏客户端。 这一切都是在现场完成的,当所有玩家都接受了邀请时,游戏应该立即播放。 我的问题是:有没有办法在Google Play游戏服务中解决这个问题,以便使用我的邀请系统? 或者是否有任何其他游戏服务可以支持我想要实现的目标? 我曾经在游戏服务中解决过的一个想法就是像两个不同的邀请一样处理它:一个玩家邀请他或她的朋友参加一段时间后会发生的游戏。 当被邀请的朋友接受该邀请时,在他们的应用程序中设置计时器,在游戏开始前10分钟。 当计时器结束时,会显示一个对话框,玩家可以再次接受他们是否想要参与游戏。 这是在创建房间时,游戏将像普通的实时多人游戏一样工作。 这个解决方案的问题是邀请。 我不认为他们可以等待,但必须在现场接受,这不是我的应用程序应该如何工作。

GPGS可靠的消息没有到达其他玩家

我正在使用谷歌游戏服务来处理我的游戏中的多人游戏,但我已经达到了主要的绊脚石。 我在游戏中使用实时多人游戏,并在用户之间定期发送可靠的消息(平均每秒1条消息;较大的文件被分割,可以每秒10个消息发送)。 我遇到的问题是消息似乎没有到达目的地。 我连接到房间后立即向其他用户发送消息,我看到其他用户已加入。 有时,消息将到达目标,有时则不会。 如果我在进入房间后设置了10秒的延迟(仅用于测试),那么消息似乎总是会通过。 我检查了状态代码,从消息回调中得到STATUS_OK(0),在发送可靠消息时得到正整数或零整数作为返回值。 所以我没有收到错误,但是没有发送(或接收)消息。 在开始发送消息之前是否需要满足某些条件? 更新: 我实际上有一个系统可以让我在调用以下其中一个时发送数据:onRoomConnected,onP2PConnected和onPeersConnected。 当其中一个被调用时,我发送一条大消息(6000多个字节,分成1000个块)给新用户使用: Games.RealTimeMultiplayer.sendReliableMessage(mContext.aHelper.getApiClient(), null, serializedData.getBytes(), mRoomId, getParticipantId()); 这是直接从按钮点击器示例中获取的。 我曾经等到onRoomConnected被调用,但我仍然看到我的一些消息没有通过。

Google Play游戏服务 – 无法登录游戏中心

到目前为止我做过的事情: 在Dev Console(游戏服务)中添加并链接了我的应用程序 将App_id包含在我的app / manifest中 将BaseGameActivity和GameHelper添加到我的项目中(来自GitHub) 将google-play-services库添加到我的项目中 扩展BaseGameActivity 什么是日志中的ee: GameHelper: **** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES GameHelper: **** This is usually caused by one of these reasons: GameHelper: **** (1) Your package name and certificate fingerprint do not match GameHelper: **** the client ID you registered in Developer Console. […]

AndEngine与Google Play游戏服务

我正在使用AndEngine-GLES2-AnchorCenter,我希望实现Google Play游戏服务。 我将BaseGameActivity (Google Play游戏服务的一部分–Android样本)中的BaseGameActivity和GameHelper类复制到同一个util包中的项目中。 因为AndEngine已经使用了BaseGameActivity ,我将它重命名为GBaseGameActivity并将扩展类更改为BaseGameActivity(AndEngine类),所以从这里: public abstract class BaseGameActivity extends FragmentActivity 至: public abstract class GBaseGameActivity extends BaseGameActivity 然后我在GBaseGameActivity上扩展了我的类(当我扩展BaseGameActivity(AndEngine类)时,它的工作…但不是GBaseGameActivity(BaseGameUtils类)) public class BaseActivity extends GBaseGameActivity 我尝试编译我的项目,但我得到了: … Could not find class ‘com.xxx.xxx.util.GameHelper’, referenced from method com.xxx.xxx.util.GBaseGameActivity. Could not find class ‘com.xxx.xxx.util.GameHelper’, referenced from method com.xxx.xxx.util.GBaseGameActivity.onCreate FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.xxx.xxx.util.GameHelper at com.xxx.xxx.util.GBaseGameActivity.(GBaseGameActivity.java:63) at com.xxx.xxx.BaseActivity.(BaseActivity.java:35) […]

谷歌Play游戏成就解锁popup窗口没有显示

我正在使用开发人员文档中的这个简单方法解锁成就: Games.Achievements.unlock(getApiClient(), “my_achievement_id”); 成就解锁,但没有popup窗口显示。 登录Google Play游戏时也没有popup窗口 – 已连接。

将分数提交到Google Play游戏排行榜并显示新的排名

我正在研究一项游戏,其中分数被提交到活动中的排行榜,并且新的高分显示在片段中的排名。 我有一些(有点)function,但成功率约为10%。 流程如下: 方法handleLeaders 此方法获取每个排行榜的当前分数,如果新分数更好,则提交它并使用分数创建新的newHigh对象并添加到ArrayList。 处理完所有3个排行榜后,调用方法setHighs。 (在每个排行榜调用中检查错误) public void handleLeaders(boolean win, int size, double t, final int toupees) { if(win) { final long time = (long) t; // Toupees Games.Leaderboards.loadCurrentPlayerLeaderboardScore(mGoogleApiClient, getString(R.string.leaderboard_trumps_toupeed), LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC).setResultCallback( new ResultCallback() { @Override public void onResult(Leaderboards.LoadPlayerScoreResult arg0) { LeaderboardScore c = arg0.getScore(); int old; if (c != null) old = (int) […]

所有google play游戏的替代品都弃用了API?

我想使用Google Play游戏服务API为我的游戏添加多人游戏。 以下post: https : //android-developers.googleblog.com/2016/12/games-authentication-adopting-google.html 有很多已弃用的API: Games.Players.getPlayerSearchIntent() Games.Players.loadConnectedPlayers() Games.Players.loadInvitablePlayers() 值LeaderboardVariant.COLLECTION_SOCIAL Invitations.loadInvitations() RealtimeMultiplayer.getSelectOpponentsIntent() TurnBasedMultiplayer.getSelectOpponentsIntent() Requests包中的所有方法。 我没有find任何有关所有弃用API的替代品的有用讨论。 我真的不想在我的游戏中集成已弃用的API。 愿任何人对此有所了解吗? 提前致谢!

Google Play服务错误 – 错误报告难以理解

我已经使用Google Play服务发布了我的应用的alpha版本。 但是,当我在使用Google Play服务的手机上测试应用时,我遇到了此错误。 在编辑过程中或在使用过时Google Play服务的手机上运行应用时,我没有遇到此错误。 我用Google搜索了这个错误并在堆栈溢出但它没有给我很多答案。 如果有人有任何想法,请帮忙。 顺便说一下,我没有启用亲卫,所以这不是问题 这是错误报告: java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. at com.google.android.gms.internal.jl$hb(Unknown Source) at com.google.android.gms.internal.jl$hg(Unknown Source) at com.google.android.gms.internal.jl$b.hy(Unknown Source) at com.google.android.gms.internal.jl$a.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:153) at android.app.ActivityThread.main(ActivityThread.java:5338) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 顺便说一下,我使用LibGdx,并且我使用google play服务作为排行榜,取得了成就。 […]

Android Google plus退出按钮与Google教程文档中的登录按钮不同

我按照Google开发者网站中提到的步骤实施登录并在我的应用中注销。 添加登录和注销按钮的代码如下所示: 在那里提到的示例中,注销按钮看起来与注销按钮非常不同(和奇怪)。 这是因为退出按钮不是从com.google.android.gms吗? com中是否有适当的注销按钮。 google.android.gms ?

注销后,Android API IsConnected返回TRUE

我正在使用Xamarin开发使用Google Play游戏服务的Android游戏。 我正在使用Genymotion Android Emulator进行测试。 我遇到了一个似乎是Google Play或Xamarin实施中的错误的问题。 如果我退出Google帐户 ,则对IGoogleApiClient.IsConnected()的调用将继续返回true (即使我已经明确注销)。 如果我然后尝试使用该API对象,我会得到以下exception: java.lang.SecurityException:调用API时未登录 例如,如果在注销后执行,则以下代码会导致上述exception: public void StartNewMatch() { if (!mGoogleApiClient.IsConnected) { return; } Intent intent = GamesClass.TurnBasedMultiplayer.GetSelectOpponentsIntent(mGoogleApiClient, 1, 1, true); StartActivityForResult(intent, RC_SELECT_PLAYERS); } 我正在Google Play游戏收件箱(匹配选择器)中退出; 如下图所示。 有没有人遇到过这个? 我错过了什么吗? 有任何解决方法吗? 注意:只有通过Google的用户界面退出时才会出现这种情况。 如果我用mGoogleApiClient.Disconnect()类的mGoogleApiClient.Disconnect()手动签出用户,则不会出现问题; mGoogleApiClient.IsConnected()现在返回false(按预期方式)。