国内关于google play game service的例子实在太少,而最近做的一款游戏要用到排行榜。

顺便打个广告,小弟做的一款答题休闲类Dogface GaGa游戏在苹果谷歌以及国内各大平台已经上线了。

总的来说google play service比game center,还是有很多有点的。首先一点就是,google paly service支持ios 以及 android跨平台玩家共用一份数据。其次,当玩家玩到某一进度时,在其他手机中,可以不用重新开始,实现游戏数据同步。而game center只能实现排行榜以及成就榜。还有一点,排行分数的更新速度,google play service是非常快的,这边上传完分数,那边就已经可以看到了。相反,game center上传与显示之间却存在时差,一般你上传的分数,要等2个小时多,其他玩家才能看到。所以估计未来会有更多的ios游戏加入google play。

注意:使用排行榜的前提是你已经是google开发者,并且在自己的应用中设置了google play游戏排行榜功能。这是小生第一次发的技术贴,转发请著名出处。

demo下载地址:点击打开链接
ccos2dx版本:2.2.3(其他版本应该也可以)

一、google play框架的配置

1、先下载好google play service sdk,在android manger里就可以下载。下载完是放在<android-sdk>/extras/google目录里。我们找到google-play-services_lib文件,在<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/里,然后复制到你的指定的位置,然后在eclipse中导入这个项目。导入方法与导入安卓项目一样。

2、在eclipse中,在你的cocos2dx项目中引用这个库。右键项目名,properties>android>add>选择google-play-services_lib项目。

3、在eclipse中,打开你的项目的manifest.xml,添加

  <meta-data android:name="com.google.android.gms.version"  android:value="@integer/google_play_services_version" />

这样你就可以用google play的服务了,广告,game service等。

二、在项目中加入game service服务

1、下载完demo以后,复制 demo 中pro.android/src/com/google文件夹复制到自己项目的com里,或者直接把BaseGameActivity.java GameHelper.java GameHelperUtils.java复制到自己的包中,不过就要修改三个文件的包名。

2、复制完以后,因为GameHelperUtils.java中,import了.R文件,所以要修改为自己显目的.R文件

3、修改自己项目的activity继承自BaseGameActivity这个类。并添加成员变量

                private static final int REQUEST_ACHIEVEMENTS = 10000;private static final int REQUEST_LEADERBOARDS = 10001;private static final int REQUEST_LEADERBOARD = 10002;static Activity me = null;//在onCreate方法中指向this。</span>

三个成员变量。看3个名称就知道,是指定请求类别的。第一个是请求成就板,第二个是请求所有的排行榜,第三个是请求指定的排行榜。

4、添加显示排行榜方法

public static void showLeaderboard(final String leaderboardID) {//因为是静态方法,所以要引用自身的acivity,所以上一步才添加me这个成员变量//由于安卓的设定,要显示控件,要在ui线程里。me.runOnUiThread(new Runnable() {@Overridepublic void run() {if (((Dogface_Ga_Ga) me).isSignedIn())//这里要转换为自身acivity的类名me.startActivityForResult(Games.Leaderboards.getLeaderboardIntent(((Dogface_Ga_Ga) me).getApiClient(), leaderboardID),REQUEST_LEADERBOARD);else {((Dogface_Ga_Ga) me).beginUserInitiatedSignIn();//当没有登录的时候,则启动登录界面}}});}</span>

5、添加上传分数方法

    public static void submitScore(final String leaderboardID, final long score) {//leaderboardID是google play开发者自己应用设置的排行榜idme.runOnUiThread(new Runnable() {@Overridepublic void run() {if (((Dogface_Ga_Ga) me).isSignedIn()) {Log.d(TAG, "Submit score " + score + " to " + leaderboardID);Games.Leaderboards.submitScore(((Dogface_Ga_Ga) me).getCustomApiClient(),leaderboardID, score);} else {//这里可以把最高分存储起来,在游戏能登录后,在提交分数}}});}

6、在manifast.xml中加入

        <meta-dataandroid:name="com.google.android.gms.games.APP_ID"android:value="@string/google_play_game_app_id" />

google_play_game_app_id是你的应用在开启google play服务时分配的id。你可以在项目的res/values中新建xml里定义id的值,如:

<resources>
<string name="google_play_game_app_id">此处写上google play的id</string>
</resources>

至此,就可以实现游戏的上传分数,以及显示排行榜了。之后如何让c++层调用java层,网上有很多教程,这里就不做多介绍了。

这是我第一次写技术文,如果有哪些漏洞或者错误,请各位大牛指正。小生有错必改。

注意在调试游戏的时候,不能用自带的debug签名,以为你在设置google play id的时候,是根据的你的签名秘钥绑定的。你需要用自己的签名调试。如何更改调试签名,在我的下一篇中会介绍。

基于cocos2dx,在android的游戏中加入google play game排行榜。相关推荐

  1. 基于cocos2d-x的快速的游戏开发--回合制游戏

    2019独角兽企业重金招聘Python工程师标准>>> #基于cocos2d-x的快速的游戏开发--回合制游戏 开发时间:3天 开发工具:cocos2d-x和cocostudio 开 ...

  2. 《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Lua+人机交互+沙箱+导航+决策树+影响力地图+立钻哥哥+==)

    <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> 版本 作者 参与者 完成日期 备注 YanlzAI_Lu ...

  3. 前端后台以及游戏中使用Google Protocol Buffer详解

    前端后台以及游戏中使用Google Protocol Buffer详解 前端后台以及游戏中使用Google Protocol Buffer详解 0.什么是protoBuf 1.下载protobuf的编 ...

  4. cocos2dx 实现横版游戏中屏幕随精灵移动

    在横版游戏中,实现屏幕随精灵移动而移动,要实现这个,首先要明白这个问题中的变与不变: 不变:地图位置: 变:精灵的位置.屏幕(或理解为所在图层)的位置: 故,说是滚动地图,其实是图层滚动: 从不变入手 ...

  5. 基于Cocos2dx开发卡牌游戏_放开那三国

    1.已经实现动态读取地图资源,地图信息记录在excel表格.如果要增加地图,编辑excel后导入至CocoStudio数据编辑器,然后导出成Json文件,放到项目的Resource目录下. 2.SGF ...

  6. 基于Cocos2dx开发卡牌游戏Demo_放开那三国 2.0

    PS:下载地址在最以下 1.登录 2.副本选择 3.地图 4. 选择敌人 5. 战斗 6. 战斗结算 7. 地图拓展 8. 武将拓展 9. 下载地址: 点击打开链接

  7. 聚焦 Android 11: 游戏开发新工具

    作者 / Android 与 Google Play 游戏产品管理主管 Greg Hartrell 在往期 #11WeeksOfAndroid 系列文章中我们介绍了联系人和身份.隐私和安全.Andro ...

  8. threejs 微信小游戏中的离屏渲染做UI和排行榜

    微信小游戏对threejs真的是一次桎酷啊...呵呵. 规定不能用html锁死了我们之前两个html标签的可能了... 不过微信还是允许了大家的离屏渲染,要不是我们在跳一跳之类的游戏中也看不到排行榜和 ...

  9. 【iOS-cocos2d-X 游戏开发之四】Cocos2dX创建Android NDK新项目并编译导入Eclipse中正常运行!...

    首先还没有配置好环境并正常运行Cocos2dx自带的test.android例子的童鞋先把环境都搭建好吧:[iOS-cocos2d-X 游戏开发之三]Mac下配置Android NDK环境并搭建Coc ...

最新文章

  1. 《公司理财》_16章_2.财务杠杆学习笔记
  2. 老男孩python21期作业_(禁闲聊)绘画讨论10个群第176期作业展示
  3. 搜索算法(三)--DFS/BFS求解宝岛探险问题(JAVA )
  4. [SQL]查询及删除重复记录的SQL语句
  5. 统计二进制中1的个数(四种方案)
  6. 泛型list集合类转换成DataTable、datatable转list
  7. 《穿越计算机的迷雾》读书笔记八
  8. redis读数据超时问题查询
  9. 20幻读是什么,幻读有什么问题
  10. python--循环绘制ERA5风场的空间分布图
  11. 博客转移至 http://sunhs.me
  12. burpsuite代理
  13. 安卓调用系统组件实现拨打电话
  14. php切图工具,ps切片工具怎么切图
  15. 混合云时代,华云网络的“驭云术”
  16. 2017中学生计算机竞赛预赛试题答案,2017年初中化学竞赛初赛试题
  17. 基于JAVA的公交调度系统
  18. chrome黑暗模式_黑暗模式:如何克服黑暗面
  19. delphi多线程释放
  20. 5.18 晴 魔兽,星际之门,越狱观后感

热门文章

  1. 什么是A005次新股选股指标?
  2. 关于《论文写作》课程的总结与收获
  3. 芯洲科技升降压芯片SCT81620,SCT81621完全替代LM3478和LM3481,助力国产化进程
  4. DevExpress单据模板插件
  5. 百度与谷歌的一些高级搜索命令
  6. a类计算机房的安全需求,安防知识:弱电机房建设分类及要求
  7. 用javascript生成屏幕尺
  8. Kubectl-AI: 一款使用 OpenAI GPT 自动生成应用 Kubernetes 部署清单的神器
  9. 流浪只是为了更好的浪
  10. 互联网服务器攻防秘笈