U8SDK——Cocos2dx游戏快速接入U8SDK(接入篇)

作者: 分类: U8SDK 发布时间: 2015-08-15 13:41 67条评论

最近抽了点时间,折腾了下cocos2dx中接入U8SDK的Demo。同时,简单封装了下,使得在cocos2dx中能够快速地接入U8SDK。

先说下大体的思路。和之前说的在Unity中接入U8SDK一样,在Cocos2dx中接入U8SDK,我们也分为两步,一个Android中的部分,另 一个是Coccos2dx中的部分。同时,我们希望尽可能地封装不同平台之间数据的传递,以及接口的调用。使得大部分游戏基于这个封装,都可以最快地 速度来完成U8SDK的接入。

  1. 新建一个Android工程,作为U8SDK和Cocos2dx的一个中间工程(U8SDK_Cocos2dx),主要负责U8SDK的接口调用封装,参数传递和解析等。这个工程,对于所有游戏都试用。
  2. 在Cocos2dx中封装JNI调用,以及和Android中交互的数据格式等的定义和解析。同样地,这部分对于所有游戏也都适用。游戏中只需要调用这里提供的相关接口,以及实现相应的回调即可完成接入。

    这篇文章,我们先来总体看看,对于一个新的Cocos2dx的开发的游戏,怎么根据我们的封装,快速完成U8SDK的抽象层的接入,从而直接打出母包,再通过一键打包工具,打出最终的多个渠道包。

    首先, 我们使用cocos new 新建一个Cocos2dx(我这里使用的是Cocos2dx 3.x版本)工程,名为HelloCocos。

    然后,解压u8sdk_cocos2dx.zip文件到HelloCocos/Classes目录下:

cocos2dx中接入U8SDK

紧接着,我们新建两个按钮,一个登录,一个支付。 再新建一个Label,显示当前的登录状态。

2、HelloWorldScene.cpp中init方法的最后,我们调用U8SDK的初始化方法:

U8SDKInterface::getInstance()->initSDK(this);

同时,这里要实现第一步中添加的U8SDKCallback中的回调

3、定义登录按钮和支付按钮的点击事件,登录点击的时候,触发登录;U8SDKInterface::getInstance()->login();支付按钮点击的时候,触发支付:U8SDKInterface::getInstance()->pay(params);完整的代码,如下:

4、 将HelloCocos生成proj.android导入到eclipse中,然后将U8SDK2和U8SDK_Cocos2dx工程生成的jar包(分 别是u8sdk2.jar和u8sdk_cocos2dx.jar)拷贝到HelloCocos安卓工程的libs目录下。然后,将生成的 AppActivity.java,本来是继承Cocos2dxActivity的,改为继承U8CocosActivity。
同时,将AndroidManifest.xml中的application节点中,加上android:name=”com.u8.sdk.U8Application”

cocos2dx_2

最后,为了能够在Android中编译并运行,我们还需要将U8SDK包含的这些Cpp文件,添加到Android.mk中,最终的文件如下:

到这里,接入就算完成了。我们可以使用cocos compile -p android 命令来编译Android平台,之前的操作如果稍有不慎,这里编译的过程中,也许会遇到一些错误,不过,看着啥错误,一一解决即可。

编译成功之后,在proj.android的bin目录下会生成一些apk文件,将HeroCocos-debug.apk拷贝到U8SDK打包工具目录下,替换原来的u8.apk
然后,运行package.bat,选择需要打包的渠道,然后就开始打包了,打包完成之后,在output目录下生成当前渠道SDK的渠道包,比如最终UC的包:

cocos2dx_default
cocos2dx_login
cocos2dx_pay

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=1886

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入