Windows phone 8 AdMob间质Cocos2d-x WP8
enyone能告诉我如何在我的cocos2d-x游戏中在场景之间调用AdMob中间层吗 我试过这个指南,但我不知道如何从cocos类运行它Windows phone 8 AdMob间质Cocos2d-x WP8,windows-phone-8,admob,windows-phone-8.1,cocos2d-x,c++-cx,Windows Phone 8,Admob,Windows Phone 8.1,Cocos2d X,C++ Cx,enyone能告诉我如何在我的cocos2d-x游戏中在场景之间调用AdMob中间层吗 我试过这个指南,但我不知道如何从cocos类运行它 还有其他的方法吗,或者一些指南吗?我最近做了。你几乎不需要做什么。首先,创建helper类,它将帮助您调用本机函数(我对所有3种平台都使用它,但这里只有windows phone): NativeHelper.h: #ifndef __NATIVE_HELPER_H_ #define __NATIVE_HELPER_H_ #include <st
还有其他的方法吗,或者一些指南吗?我最近做了。你几乎不需要做什么。首先,创建helper类,它将帮助您调用本机函数(我对所有3种平台都使用它,但这里只有windows phone): NativeHelper.h:
#ifndef __NATIVE_HELPER_H_
#define __NATIVE_HELPER_H_
#include <string>
#include <functional>
#include "cocos2d.h"
using namespace std;
USING_NS_CC;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
namespace cocos2d
{
public delegate void CSharpShowInterstitialDelegate();
public ref class WP8NativeEventHelper sealed
{
public:
void WP8NativeEventHelper::SetCSharpShowInterstitialDelegate(CSharpShowInterstitialDelegate^ delegate){
m_CSharpShowInterstitialDelegate = delegate;
}
void CallShowInterstitial();
private:
property static CSharpShowInterstitialDelegate^ m_CSharpShowInterstitialDelegate;
};
}
#endif
class NativeHelper
{
public:
static void showInterstitial(string adSdk);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
WP8NativeEventHelper^ wp8helper;
#endif
//instance required only for setting callback
static NativeHelper* getInstance();
~NativeHelper()
{
instanceFlag = false;
}
private:
static bool instanceFlag;
static NativeHelper* instance;
NativeHelper() {};
};
#endif // __NATIVE_HELPER_H_
这里只是CallShowInterstitual的一个实现。同样在NativeHelper::showInterstitial中,我们调用了C++/CX,后者后来调用了C
现在是c代码(MainPage.xaml.cs):
命名空间外部:
using GoogleAds;
课堂内:
private InterstitialAd interstitialAd;
在构造函数中:
WP8NativeEventHelper helper = new WP8NativeEventHelper();
helper.SetCSharpShowInterstitialDelegate(showInterstitial);
并创建一个间隙功能:
public void showInterstitial() //we recreate interstitial each time, because otherwise it'll show only once, only new requests won't work
{
interstitialAd = new InterstitialAd("MY_AD_UNIT_ID");
AdRequest adRequest = new AdRequest();
#if DEBUG
// Enable test ads.
adRequest.ForceTesting = true;
#endif
interstitialAd.ReceivedAd += OnAdReceived;
interstitialAd.LoadAd(adRequest);
}
最后,我想到:
private void OnAdReceived(object sender, AdEventArgs e)
{
System.Diagnostics.Debug.WriteLine("Ad received successfully");
interstitialAd.ShowAd();
}
按照本指南设置admob:
现在让我们用这个
在HelloWorldScene.h中添加:
#include "NativeHelper.h"
在HelloWorldScene.cpp中:
NativeHelper::showInterstitial();
例如,您可以使用相同的方法显示/隐藏/更改admob横幅的位置(但是它有缺陷,所以我使用广告中介)。很抱歉,我的博客文章没有帮助。你能链接到你正在寻找的一些资源吗?AdMob Interstituals的SDK说明将是一个开始的好地方。这很有帮助,但我有一些误解。在这里。哇,做得很好。谢谢,这似乎有效,但我有一些问题。本指南适用于cocos2dv3.x?我使用的是cocos2d 2.x,它给了我一个错误:输出文件名PhoneDirect3DXamlAppComponent.winmd应该与.winmd文件中的一种类型的名称空间cocos2d匹配。我应该移植到cocos3.x吗?或者只使用PhoneDirect3DXamlAppComponent名称空间而不是cocos2d?是的,这适用于cocos2d-x 3.0。我不使用2.0版本,但我认为更改名称空间应该可以解决这个问题。您知道在cocos2d-X3.6中集成广告的方法吗?新模板不提供C#项目,XAML文件与使用cocos控制台创建项目不同。应该和以前一样。是的,这只适用于3.x的早期版本。从3.4或3.5左右的某个点开始,COCOS2D—X项目从C++/CX(C++和C++)项目变成了一个C++项目。可以为当前COCOS2D-X版本3.7创建C++ /CX项目,但也可能有一个很好的理由,它被移除并被C++项目取代。我请微软Cocos2d-x公司的Dale Stammen澄清一下,他是否知道为什么要从Cocos2d-x中删除C++/CX项目:
NativeHelper::showInterstitial();