Cocos2d-x系统开发游戏已经变得比較流行,但是用这个开发的游戏。想要加入广告就不是那么理想了。尤其是插屏广告。由于插屏广告通常是要在暂停或者结束游戏的时候展示才比較的合理。但是Cocos2d-x是C++语言,展示广告的代码都是写在Java源码里的。这就使得问题有一些麻烦。由于Android下的Cocos2d-x开发使用的是Jni技术,通过该技术,java代码能够调用c++代码,由此能够想到,c++代码也能够调用java代码的。比方我们想使用有米的插屏广告。能够这样加入代码:

Java代码:

public class TestClass extends Cocos2dxActivity

{

public static TestClass paopao = null;  //这个用来存储类的实例

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

paopao = this; //存储类的实例

AdManager.getInstance(this).init(“xxxxxxxxx”,”xxxxxxxxx”, false);   //设置有米广告的ID和密钥

SpotManager.getInstance(this).loadSpotAds();

SpotManager.getInstance(this).setSpotTimeout(5000);

SpotManager.getInstance(this).setShowInterval(60);//设置60秒的显示时间间隔

}

static {

System.loadLibrary(“game”);

}

public static Object getJavaActivity()     //这个函数是用来返回类的实例的

{

return paopao;

}

public void showAds()     //该函数用于展示广告

{

SpotManager.getInstance(this).showSpotAds(this);

}

public void disMissAds()

{

SpotManager.getInstance(this).disMiss();

}

@Override     protected void onStop()

{

//假设不调用此方法,则按home键的时候会出现图标无法显示的情况。

SpotManager.getInstance(this).disMiss();

super.onStop();     }

}

C++代码:

在AppDelegate.cpp中加入这样一个函数

void AppDelegate::ShowAds()

{

JniMethodInfo minfo;

//首先通过TestClass类的getJavaActivity静态函数获取TestClass实例

bool isHave = JniHelper::getStaticMethodInfo(minfo,    ”org/cocos2dx/testexample/TestClass”,    ”getJavaActivity”,    ”()Ljava/lang/Object;”);

jobject activityObj;

if(isHave)  {   activityObj = minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID);  } //获取TestClass实例

isHave = JniHelper::getMethodInfo(minfo,    ”org/cocos2dx/testexample/TestClass”,    ”showAds”,”()V”);

if(isHave)  {   minfo.env->CallVoidMethod(activityObj, minfo.methodID);  }  //运行TestClass的showAds函数来显示广告

}

这样一来,仅仅要在程序的适当地方调用AppDelegate::ShowAds这个函数就能够了。

AppDelegate类的实例通过AppDelegate * app = (AppDelegate *)(CCApplication::sharedApplication());就能够取得的。

Cocos2d-x开发的Android应用怎么加入插屏广告的更多相关文章

  1. 分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告

    分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 操作简单,傻瓜一看就会 无毒.无广告.无负作用,完全免费 下载地址1:http://awdjcfeizb.l33.yunpa ...

  2. 分享:Android浏览器,用NDK C++做底层开发的Android浏览器,纯免费,无广告

    分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 操作简单,傻瓜一看就会 无毒.无广告.无负作用, ...

  3. Xamarin体验:使用C#开发iOS/Android应用

    Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发.   简介 Xamarin是基于Mo ...

  4. 怎么让我们自己开发的Android程序设为默认启动

    怎么让我们自己开发的Android程序设为默认启动呢?其实很简单,只要在AndroidManifest.xml文件中配置一下首次启动的那个Activity即要. <activity        ...

  5. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  6. cocos2d 游戏开发实战

    文章转自:http://uliweb.clkg.org/tutorial/read/40 6   cocos2d 游戏开发实战 6.1   创建cocos2d项目 6.2   cocos2d v3 & ...

  7. linux安装安卓开发工具android studio

    http://www.android-studio.org/ http://android-studio.org/index.php/docs/guide 最近要接触android编程,本来想装ecl ...

  8. Delphi XE-Windows下配置开发环境 (Android版/IOS)

    Delphi XE-Windows下配置开发环境  (Android版/IOS)   http://www.52jike.com/thread-1-1-1.html Delphi XE5的Androi ...

  9. Cordova/Ionic开发的Android APP启用Chrome Inspect调试的方法

    Cordova/Ionic开发的Android APP,需要启用WebView的调试模式,才可以在Chrome浏览器中输入chrome://Inspect,然后使用大家熟悉的开发者工具进行调试.不启用 ...

随机推荐

  1. Linux 命令行光标快速选中移动快捷键

    Ctrl+Alt+T 打开终端一些常用的终端快捷键:Ctrl+L 清空屏幕(功能相当于命令clear)Ctrl+U 剪切文本直到行的起始(可以用于清空行)Ctrl+K 剪切文本直到行的末尾Ctrl+Y ...

  2. 在 Ubuntu 18.04 LTS 无头服务器上安装 Oracle VirtualBox

    作者: Sk 译者: LCTT qhwdw | 2018-10-12 01:59 本教程将指导你在 Ubuntu 18.04 LTS 无头服务器上,一步一步地安装 Oracle VirtualBox. ...

  3. 四 numpy操作数组输出图片

    一.读取一张图片,修改颜色通道后输出 # -*- coding=GBK -*- import cv2 as cv import numpy as np #numpy数组操作 def access_pi ...

  4. Git强制覆盖master分支

    在开发中,通常会保持两个分支master分支和develop分支,但是如果因为develop上面迭代太多而没有及时维护master,最后想丢弃master而直接将测试确认过的develop强推到mas ...

  5. [ZJOI2012]旅游(树的直径)

    [ZJOI2012]旅游 题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个凸N边形来表示 ...

  6. 使用npm上传npm包

    npm是一个node的包管理仓库,一个网站,也是一条命令.如何给node里增加npm包呢?只需三步就搞定. 第一步:在开始里边打开cmd进入自己的项目中,在项目目录中输入 npm init 回车会有一 ...

  7. WHU 1548 Home 2-SAT

    ---恢复内容开始--- 题意: N个人想回家在至少一个时刻.至多两个时刻.并且,他们每个人都能独自回家. 定义:ai表示第i个人回家的时间, xij = abs(ai - aj) (i != j). ...

  8. linux 下查看二进制文件

    查看二进制有以下几种方法: 方法一:hexdump apt-get install libdata-hexdumper-perl 安装好之后就可以直接hexdump your_binary_file ...

  9. HTML——上中下布局

    上中下布局是最主要的布局方式,本比如果用户屏幕分辨率为800*600像素. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3Vuc2h1bWlu/font ...

  10. 《机器学习系统设计》之应用scikit-learn做文本分类(上)

    前言: 本系列是在作者学习<机器学习系统设计>([美] WilliRichert)过程中的思考与实践,全书通过Python从数据处理.到特征project,再到模型选择,把机器学习解决这个 ...