• cocos2d-x android 项目调用插屏广告


    首先了解一下 jni的一些东西

    http://www.himigame.com/android-game/725.html

    里面的我也就不再复制粘贴了。

    我这里使用的是mix智游汇的demo。

    1 和Android项目一样

     首先把mix的jar包放入libs中,添加连接和以前的步骤一样。
    添加一个static方法,内部调用MIXView的showAd的方法,注意第一个参数。
    public class TEST extends Cocos2dxActivity implements MIXViewListener{
        //定义一个静态的上下文
        public static Context context_;
        
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            //初始化mix插件
              MIXView.initWithID("6f83f191b42739f9", true,
                        this);
            //设置上下文
              context_=TEST.this;
              //可选项:设置mix监听
              MIXView.setListener(this);
        }
        
        static {
             System.loadLibrary("game");
        }
        //这个是himi的demo 静态函数示例2.有参数,无返回值 
        public static void testFunWithInt(int _int) { 
            Log.e("Himi", "静态函数示例1.有参数,无返回值;传入的参数int=" + _int); 
        }
        //这个是mix调用展示广告的方法。
        public static void showAAd(){
            
            MIXView.showAd((Activity) context_, "default");
        }

    mix.showAd 第二个参数是广告触发位,可以自己设置。

    在c++代码中

    我自己又添加了一个button,添加了一个回掉函数menuCloseCallback1()

    void HelloWorld::menuCloseCallback1()
    {
       CCLOG("%s","test...");
    
    
        ////静态函数示例1.无参数,无返回值---------------------------------$$$$$$-----------------------------
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
        JniMethodInfo minfo;//定义Jni函数信息结构体
        //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
        bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/aosting/TEST",  //类的路径
                                                     "showAAd", "()V");
        
        if (!isHave) {
            CCLog("jni:此函数不存在");
        }else{
            CCLog("jni:此函数存在");
            
            //调用此函数
            minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
               
        }
        CCLog("jni-java函数执行完毕");
    #endif
    
    }
     运行Android就可以了,其中我没有在ccoos2d-x中游戏状态做处理,比如在展示广告的时候,暂停一些资源,关闭的时候,重新开启。
    mix可以自定义广告触发位,也就是mix.showAd 第二个参数。
    开始的时候我一直想用在c++中传递string类型,发现很麻烦。可以在c++中传递int参数。
    然后在java方法中添加一个switch语句来展示不同的位置广告。
     

     

  • 相关阅读:
    接口interface
    枚举类型
    编写Hello World ts程序
    TypeScript基本类型
    初始TypeScript
    session和cookie自动登录机制
    奇辉机车车号自动识别系统介绍
    AForge.NET 设置摄像头分辨率
    工作感概—活到老xio到老
    Scala学习二十二——定界延续
  • 原文地址:https://www.cnblogs.com/aosting/p/3459631.html
Copyright © 2020-2023  润新知