位置: 编程技术 - 正文

cocos2dx + android 如何添加百度插屏广告

编辑:rootadmin

推荐整理分享cocos2dx + android 如何添加百度插屏广告,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

这几天,楼主和我的几个小伙伴完成了一个自己的Android游戏,使用cocos2d-x-.2.1.5 编写的,现在基本上都完工了,但是当进行到发布应用这一步时,本来打算在游戏中添加道具收费的,但是遇到了一些问题,所以只能在里面添加插屏广告了,我们这款游戏添加的是百度移动联盟的,好了,废话少说,现在开始正式的:

首先大家都知道是配置问题,这一块我就不多说了,大家可以到 view plaincopypublic class ShowAdHelper { private static Handler mHandler; public static void init(Handler handler) { ShowAdHelper.mHandler = handler; } private static void showMyAd() { Message msg = mHandler.obtainMessage(); msg.what = myGame.SHOW_AD; msg.sendToTarget(); } } 同时,我们会在这个包下面发现一个文件,这个文件是自动创建的,比如我的myGame.java,这个名称是和你在创建游戏时的命名有关的。在这个文件下面,要做如下修改:

首先,声明一个变量和一个常量:

cocos2dx + android 如何添加百度插屏广告

[java] view plaincopypublic class myGame extends Cocos2dxActivity{ ... [java] view plaincopypublic static final int SHOW_AD = 0x; InterstitialAd interAd;//插屏广告 ... } 然后还要在写一个初始化插屏广告函数:

[java] view plaincopypublic InterstitialAd getAd() { final InterstitialAd interAd1 = new InterstitialAd(this); interAd1.setListener(new InterstitialAdListener(){ @Override public void onAdClick(InterstitialAd arg0) { Log.i("InterstitialAd","onAdClick"); } @Override public void onAdDismissed() { Log.i("InterstitialAd","onAdDismissed"); interAd = getAd(); } @Override public void onAdFailed(String arg0) { Log.i("InterstitialAd","onAdFailed"); } @Override public void onAdPresent() { Log.i("InterstitialAd","onAdPresent"); } @Override public void onAdReady() { Log.i("InterstitialAd","onAdReady"); } }); interAd1.loadAd(); return interAd1; }

同时,我们在onCreate函数中调用一次:

[java] view plaincopyprotected void onCreate(Bundle savedInstanceState){ ... interAd = getAd(); ... } 创建一个Hendler[java] view plaincopyprivate Handler aHandler = new Handler() { @Override public void handleMessage(Message msg) { switch(msg.what) { case SHOW_AD: //if(isFirst) //{ if(interAd.isAdReady()){ interAd.showAd(Cocos2dxActivity.this); Log.d("LC","show"); }else{ interAd.loadAd(); } Log.d("LC","not show"); break; } } };

然后调用ShowAdHelper类中的init函数初始化。

[java] view plaincopyprotected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //mHandler = new MainHandler(); ShowAdHelper.init(mHandler); } 到这里就已经差不多了,我们只需要在C&#;&#;层中通过jni调用ShowAdHelper类中的showMyAd函数就行了。

当然也附上代码:

[cpp] view plaincopyvoid PublicMethod::loadAndroidAd() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台 JniMethodInfo minfo; jobject jobj; bool b = JniHelper::getStaticMethodInfo(minfo, "org/cocos2dx/lib/AdHelper", "showMyAd", "()V"); jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); #endif } 到此就完成了,你可以在想要出广告的地方调用loadAndroidAd函数就行了。

至此,小伙伴们就可以想在哪里展示广告就在哪里展示就行了。

本文链接地址:https://www.jiuchutong.com/biancheng/368857.html 转载请保留说明!

上一篇:Cocos2dx-3.x 学习笔记一:屏幕分辨率及适配问题(cocos2dx 3.17)

下一篇:[置顶] Cocos2d-x《雷电大战》(6) 智能敌机AI来袭--飞行路径算法设计与实现(上)([置顶] 此外,车牌号:458143(懂得都懂[吃瓜]))

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络