Cocos2dx 插入广告

个人开发者只能依靠广告来获取微薄的收入,说起来确实有点可悲,最让人心寒的是,很多用户不理解,要求游戏要好玩,要免费,要没有广告,我只能说,你来。
吐槽完毕!进入正题,在Cocos2dx 中插入广告和直接在Android中插入广告主要的区别在于,在Cocos2dx 中是通过c++来调用Java代码从而实现广告的插入,本文将用插屏广告为例,进行讲解。
完成广告的嵌入,需要做如下准备

1.下载对应广告的SDK
2.修改AppActivity.java
3.构建自定义c++文件并绑定lua
4.修改两个mk文件
5.调用广告

1.下载对应广告的SDK

这点不用讲太多,国内几个类似什么有米啊,友盟啊,不过上平台还是很坑,表示无奈。对应的广告平台都有很详细的介绍,这里就啰嗦了,主要来看第二三点

2.修改AppActivity.java

该文件在

C:\Users\user\Documents\Cocos\Jump\frameworks\runtime-src\proj.android\src\org\cocos2dx\lua

添加一个静态函数,作为c++调用的接口


Cocos2dx 插入广告_第1张图片
1.png

然后再handler中做逻辑处理,你要显示的广告就放在这里面,包括以后微信分享啊,什么的,只要通过改变what参数就可以实现各种功能

Cocos2dx 插入广告_第2张图片
2.png

3.构建自定义c++文件并绑定lua

关于这点在我的另一篇文章Cocos2dx Lua 绑定有过详细的阐述,对于不了解的朋友,可以先看看,知道怎么了绑定自定义c++之后,我们只要在自定义c++类中来调用java的接口,也就是步骤2中的

public static void showAdverisement(int what)

自定义类的头文件

#ifndef __ColorBlind__ADVERTISEMENT__
#define __ColorBlind__ADVERTISEMENT__
#include 
using namespace cocos2d;
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
 
#include "platform/android/jni/JniHelper.h"
#include 
 
#endif
 
#include "Cocos2d.h"
USING_NS_CC;
 
class CC_DLL Advertisement
{
public:
    static void showAdvertisement(int);
    static int test();
};
 
#endif 

自定义类的源文件

#include "Advertisement.h"

void Advertisement::showAdvertisement(int what)
{
     //判断当前是否为Android平台 JniMethodInfo showAd;
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    JniMethodInfo minfo;
    bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/lua/AppActivity","showAdvertisement", "(I)V");
    if(!isHave)
    {
        CCLog("jni:showAdvertisement is null");
    }
    else
    {
        //调用此函数
        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID,what);
    }
#endif
}

int Advertisement::test()
{
    return 100;
}

4.修改两个mk文件

自定义的c++文件在win32平台自然是没有问题的,但是编译到手机上往往会提示文件不存在等问题,原因便是mk文件没有注明自定义类。
打开

C:\Users\user\Documents\Cocos\Jump\frameworks\cocos2d-x\cocos

下的Android.mk文件

Cocos2dx 插入广告_第3张图片
3.png

在LOCAL_SRC_FILES后添加自定义类。

打开

C:\Users\user\Documents\Cocos\Jump\frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android

下的Android.mk文件


Cocos2dx 插入广告_第4张图片
4.png

在LOCAL_SRC_FILES后添加

 ../auto/lua_cocos2dx_custom_auto.cpp \

5.调用广告

调用广告其实就是调用c++了,在lua中通过cc.自定义类:自定义函数()来调用。这里便是

cc.Advertisement:Advertisement(1)

这样就将调用java中对应的函数来使得广告跳出和隐藏了。

你可能感兴趣的:(Cocos2dx 插入广告)