Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx + android 如何添加百度插屏广告大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

首先大家都知道是配置问题,这一块@R_543_6963@,大家可以到http://munion.baidu.com/about.html#/sdk/mobSdk这个网址去下载,里面有开发者文档,

现在我主要说的是在eclipse里如何添加代码,好了,下面正式开始:

一、当我们在创建Android工程时,大家都自动创建了自己的packagename:比如我的是:

这个包名当我们通过C++层调用Java层代码时是用的到的。

首先,我们需要在这个包下面创建一个class文件,命名为showAdHelper.java

这个文件的内容是:

[java] view plain copy
  1. publicclassShowAdHelper{
  2. privatestaticHandlermHandler;
  3. staticvoidinit(Handlerhandler)
  4. {
  5. ShowAdHelper.mHandler=handler;
  6. }
  7. voidshowMyAd()
  8. {
  9. messagemsg=mHandler.obtainmessage();
  10. @H_334_41@msg.what=myGame.SHOW_AD;
  11. @H_334_41@msg.send@R_923_10586@rget();
  12. }
  13. }
同时,我们会在这个包下面发现一个文件,这个文件是自动创建的,比如我的myGame.java,这个名称是和你在创建游戏时的命名有关的。在这个文件下面,要做如下修改:

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

    class@H_112_44@myGameextendsCocos2dxActivity{
  1. ...
    finalintSHOW_AD=0x0001;
  1. InterstitialAdinterAd;//插屏广告
  2. ...
  3. }
然后还要在写一个初始化插屏广告函数: @H_197_202@
    publicInterstitialAdgetAd()
  1. finalInterstitialAdinterAd1=newInterstitialAd(this);
  2. interAd1.setListener(newInterstitialAdListener(){
  3. @Override
  4. voidonAdClick(InterstitialAdarg0){
  5. Log.i("InterstitialAd","onAdClick");
  6. @Override
  7. voidonAdDismissed(){
  8. Log.i("InterstitialAd","onAdDismissed");
  9. interAd=getAd();
  10. voidonAdFailed(Stringarg0){
  11. :rgb(108,"onAdFailed");
  12. voidonAdPresent(){
  13. :rgb(108,"onAdPresent");
  14. voidonAdReady(){
  15. :rgb(108,"onAdReady");
  16. });
  17. interAd1.loadAd();
  18. returninterAd1;
  19. }

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

    protectedvoidonCreate(BundlesavedInstanceStatE){
  1. ...
  2. interAd=getAd();
  3. 创建一个Hendler
      privateHandleraHandler=newHandler()
    1. voidhandlemessage(messagemsg){
    2. switch(msg.what)
    3. caseSHOW_AD:
    4. //if(isFirst)
    5. //{
    6. if(interAd.isAdReady()){
    7. interAd.showAd(Cocos2dxActivity. Log.d("LC","show");
    8. }else{
    9. interAd.loadAd();
    10. :rgb(108,"notshow");
    11. break;
    12. };

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

    @H_197_202@ @H_184_489@
      super.onCreate(savedInstanceStatE);
    1. //mHandler=newMainHandler();
    2. ShowAdHelper.init(mHandler);
    3. 到这里就已经差不多了,我们只需要在C++层中通过jni调用ShowAdHelper类中的showMyAd函数就行了。

      当然也附上代码:

      [cpp]
        voidPublicMethod::loadAndroidAd()
      1. #if(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)//判断当前是否为Android平台
      2. JniMethodInfominfo;
      3. jobjectjobj;
      4. boolb=JniHelper::getStaticMethodInfo(minfo,
      5. "org/cocos2dx/lib/AdHelper",
      6. "showMyAd",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "()V");
      7. jobj=minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID);
      8. #endif
      9. }

      到此就完成了,你可以在想要出广告的地方调用 loadAndroidAd函数就行了。

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

      以上就是楼主这几天的心血,当然,我也有一些地方没搞明白,比如,为什么我按照官方demo添加的广告,只在第一次调用时显示,以后调用后,它居然不显示了,但是居然还点的到这个广告,但是有些情况它会显示,比如,当我点击广告后,进入广告,然后退出在进入程序,它显示了,还有,当我按了menu键后在进入程序它也显示了,当然如果有哪位大神知道原因,麻烦告知。

      最后,祝大家多多挣大钱。如有错误的地方,大家也可以指出来。

      大佬总结

      以上是大佬教程为你收集整理的cocos2dx + android 如何添加百度插屏广告全部内容,希望文章能够帮你解决cocos2dx + android 如何添加百度插屏广告所遇到的程序开发问题。

      如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

      本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
      如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。