Cocos2d-x开发的Android应用怎么添加插屏广告

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());就可以取得的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值