Cocos2d-x开发的Android应用怎么添加插屏广告
2014-06-17 15:58
489 查看
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());就可以取得的。
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应用怎么加入插屏广告
- cocos2d-x在android下添加多盟插屏广告
- cocos2d-x在android下添加插屏广告 (转)
- cocos2d-x在android下添加插屏广告 .
- cocos2d-x在android下添加多盟插屏广告
- cocos2d-x 3.X 在android 中添加多盟插屏广告
- cocos2d-x开发之如何在Android应用中加入广告(转载)
- cocos2d-x在android下添加插屏广告
- cocos2d-x在android下添加插屏广告
- cocos2d-x 3.X 在android 中添加多盟插屏广告
- cocos2d-x在android下添加插屏广告
- 如何在自己开发的android应用中添加广告
- Android开发怎么判断应用或者服务已经启动
- 在Android应用开发中遇到问题怎么办?
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- 跟我学Android应用开发 之 如何添加可选资源(alternative resources)
- cocos2d-x android 项目调用插屏广告
- Android开发—数据库应用—添加列表活动(ListActivity)--分析记事本程序
- 做Android 系统/应用开发怎么可以不懂自动化测试
- Android 程式开发:(四)使用Intent调用“内置”应用 —— 4.4添加Category属性