Plugin-x自己增加新的接口(图文教程)

就如前面《Cocos2d-x PluginX的使用(图文教程)》文章说的,cocos2d-x 默认给 Plugin-x 四个协议接口,ProtocolAds, ProtocolAnalytics, ProtocolIAP, ProtocolSocial,他们默认提供给你的有比如说支付接口等等,但是如果想要增加新的接口,比如说 login登陆,logout退出这些接口就需要自己写了。

当然,要么你直接修改文件,比如说直接修改ProtocolSocial这个接口,但是一般都不提倡你直接修改,所以这里就说一下复制一份之后,改造成想要的就行了。

这里以改造ProtocolSocial这个接口为例,改造后的接口名称为 ProtocolDynamic

【一】复制一份接口

这个接口文件分别在 plugin/protocols 下面的include的ProtocolSocial.h文件、platform/android的ProtocolSocial.cpp文件,platform/ios的InterfaceSocial.h文件和ProtocolSocial.mm文件(如果你的 sdk 只是安卓的,这个文件夹里面的可以不用修改)、proj.android/src/org/cocos2dx/plugin的InterfaceSocial.java文件。

复制ProtocolSocial.h,粘贴一下,把副本命名为ProtocolDynamic.h,复制后效果是这样的

屏幕快照 2015-07-04 18.43.28.png

注意,一定要把修改后的那个 ProtocolDynamic.h 的那个避免重复包含的宏修改成其他的,不然和 ProtocolSocial 重复一样的话会在后面的编译过程中出错

屏幕快照 2015-07-04 18.46.33.png

然后其他三个文件夹里面一样,也是复制一份,然后粘贴,把文件名的 Social 修改为 Dynamic 就可以了,

【二】修改文件

把文件里面所有的ProtocolSocial替换成ProtocolDynamic,这个就不用说了,然后增加相应的功能,比如说 login();就是在ProtocolDynamic.h头文件里面加一个 login()的函数,然后在剩下的ProtocolDynamic.cpp 文件和ProtocolDynamic.java 文件也按照格式增加。

注意,因为枚举类和这个监听类已经在ProtocolSocial.h 里面有了,所以需要修改下名字,并且把在后面两个地方用到的地方都修改下,直接查关键字就可以了。

屏幕快照 2015-07-04 18.57.13.png

屏幕快照 2015-07-04 18.57.49.png

修改完这个 ProtocolDynamic.h 文件之后,然后修改plaform/android 下面的PluginFactory.cpp这个文件

包含下头文件,然后增加下枚举,在下面的函数里面增添下 Dynamic 这个类

屏幕快照 2015-07-04 19.01.31.png

屏幕快照 2015-07-04 19.01.41.png

然后修改ProtocolDynamic.java文件,只是需要增加函数和编写序号,那个序号就是上面的那个枚举的序号,现在编号后是这个样子

屏幕快照 2015-07-04 19.01.18.png

最后修改ProtocolDynamic.cpp 文件,就是实现 login()的方法

1、首先要修改下面这句话屏幕快照 2015-07-04 19.05.12.png

因为在 Social 里面已经有这个函数调用了,不修改会重复,所以修改下就可以了,只要不重复就行,因为现在实现 login 是用不到的。

2、然后实现 login()的方法

屏幕快照 2015-07-04 19.05.18.png

只需要这一句话就可以了,就会调用java 的login了。

实现完毕之后就已经好了。

3、修改android.mk

然后修改 protocal/proj.android/jni 的 android.mk 这个文件,增加上这个 cpp

屏幕快照 2015-07-04 19.10.35.png

然后运行./build_native.sh 编译,编译通过之后就可以直接用了。

然后就是正常的按照使用 plugin-x 的文章,把第三方 sdk 加入 plugin-x ,使用就可以了,选择类型就多了一个 dynamic 这个接口。

然后调用的时候直接用 ProtocolDynamic 就可以了。比如这样

void HelloWorld::menuCloseCallback(CCObject* pSender)
{
    plugin::ProtocolDynamic *pp=dynamic_cast<plugin::ProtocolDynamic*>(plugin::PluginManager::getInstance()->loadPlugin("DynamicSUC"));//加载插件
    pp->login();
}

其他的就没有了,不会第三方 sdk 加入到 plugin-x使用的请看这个文章。cocos2d-x 使用 plugin-x 图文教程

这里给一个修改后的.h、.cpp、.java 文件,没有搞清楚的可以看看。

【三】demo 下载

Github下载:https://github.com/DamonHu/Plugin-x-

GitOsc下载:http://git.oschina.net/DamonHoo/Plugin-x-

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment