個(gè)人開(kāi)發(fā)者只能依靠廣告來(lái)獲取微薄的收入,說(shuō)起來(lái)確實(shí)有點(diǎn)可悲验烧,最讓人心寒的是板驳,很多用戶(hù)不理解,要求游戲要好玩噪窘,要免費(fèi)笋庄,要沒(méi)有廣告效扫,我只能說(shuō)倔监,你來(lái)。
吐槽完畢菌仁!進(jìn)入正題浩习,在Cocos2dx 中插入廣告和直接在Android中插入廣告主要的區(qū)別在于,在Cocos2dx 中是通過(guò)c++來(lái)調(diào)用Java代碼從而實(shí)現(xiàn)廣告的插入济丘,本文將用插屏廣告為例谱秽,進(jìn)行講解。
完成廣告的嵌入摹迷,需要做如下準(zhǔn)備
1.下載對(duì)應(yīng)廣告的SDK
2.修改AppActivity.java
3.構(gòu)建自定義c++文件并綁定lua
4.修改兩個(gè)mk文件
5.調(diào)用廣告
1.下載對(duì)應(yīng)廣告的SDK
這點(diǎn)不用講太多疟赊,國(guó)內(nèi)幾個(gè)類(lèi)似什么有米啊,友盟啊峡碉,不過(guò)上平臺(tái)還是很坑近哟,表示無(wú)奈。對(duì)應(yīng)的廣告平臺(tái)都有很詳細(xì)的介紹鲫寄,這里就啰嗦了吉执,主要來(lái)看第二三點(diǎn)
2.修改AppActivity.java
該文件在
C:\Users\user\Documents\Cocos\Jump\frameworks\runtime-src\proj.android\src\org\cocos2dx\lua
添加一個(gè)靜態(tài)函數(shù)疯淫,作為c++調(diào)用的接口
然后再handler中做邏輯處理,你要顯示的廣告就放在這里面戳玫,包括以后微信分享啊熙掺,什么的,只要通過(guò)改變what參數(shù)就可以實(shí)現(xiàn)各種功能
3.構(gòu)建自定義c++文件并綁定lua
關(guān)于這點(diǎn)在我的另一篇文章Cocos2dx Lua 綁定有過(guò)詳細(xì)的闡述咕宿,對(duì)于不了解的朋友币绩,可以先看看,知道怎么了綁定自定義c++之后府阀,我們只要在自定義c++類(lèi)中來(lái)調(diào)用java的接口类浪,也就是步驟2中的
public static void showAdverisement(int what)
自定義類(lèi)的頭文件
#ifndef __ColorBlind__ADVERTISEMENT__
#define __ColorBlind__ADVERTISEMENT__
#include <cocos2d.h>
using namespace cocos2d;
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#include <jni.h>
#endif
#include "Cocos2d.h"
USING_NS_CC;
class CC_DLL Advertisement
{
public:
static void showAdvertisement(int);
static int test();
};
#endif
自定義類(lèi)的源文件
#include "Advertisement.h"
void Advertisement::showAdvertisement(int what)
{
//判斷當(dāng)前是否為Android平臺(tái) 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
{
//調(diào)用此函數(shù)
minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID,what);
}
#endif
}
int Advertisement::test()
{
return 100;
}
4.修改兩個(gè)mk文件
自定義的c++文件在win32平臺(tái)自然是沒(méi)有問(wèn)題的,但是編譯到手機(jī)上往往會(huì)提示文件不存在等問(wèn)題肌似,原因便是mk文件沒(méi)有注明自定義類(lèi)费就。
打開(kāi)
C:\Users\user\Documents\Cocos\Jump\frameworks\cocos2d-x\cocos
下的Android.mk文件
在LOCAL_SRC_FILES后添加自定義類(lèi)。
打開(kāi)
C:\Users\user\Documents\Cocos\Jump\frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android
下的Android.mk文件
在LOCAL_SRC_FILES后添加
../auto/lua_cocos2dx_custom_auto.cpp \
5.調(diào)用廣告
調(diào)用廣告其實(shí)就是調(diào)用c++了川队,在lua中通過(guò)cc.自定義類(lèi):自定義函數(shù)()來(lái)調(diào)用力细。這里便是
cc.Advertisement:Advertisement(1)
這樣就將調(diào)用java中對(duì)應(yīng)的函數(shù)來(lái)使得廣告跳出和隱藏了。