- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能告诉我如何在我的 cocos2d-x 游戏中的场景之间调用 AdMob Interstitial?
我试过这个http://robwirving.com/2014/07/21/calling-c-methods-c-winrt-components/指南,但我不知道如何从 cocos 类运行它。
有没有其他方法,或者一些指南?
最佳答案
我最近做到了。你必须做几件事。首先创建帮助程序类,它将帮助您调用 native 函数(我将其用于所有 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_
所以。我们有特殊的 C++/CX 类 Wp8NativeEventHelper,它可以与 C# 进行“对话”。我们在这里存储一个委托(delegate)。
工作原理:
现在 NativeHelperWP.cpp:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
#ifndef __NATIVE_HELPER_WP_H_
#define __NATIVE_HELPER_WP_H_
#include "NativeHelper.h"
void WP8NativeEventHelper::CallShowInterstitial(){
if (m_CSharpShowInterstitialDelegate)
{
m_CSharpShowInterstitialDelegate->Invoke();
}
}
bool NativeHelper::instanceFlag = false;
NativeHelper* NativeHelper::instance = NULL;
NativeHelper* NativeHelper::getInstance()
{
if(!instanceFlag){
instance = new NativeHelper();
instanceFlag = true;
instance->wp8helper = ref new WP8NativeEventHelper();
}
return instance;
}
void NativeHelper::showInterstitial(){
NativeHelper::getInstance()->wp8helper->CallShowInterstitial();
}
#endif
#endif
这里只是 CallShowInterstitial 的一个实现。同样在 NativeHelper::showInterstitial 中,我们调用 C++/CX,后者稍后调用 c#。
现在的 C# 代码 (MainPage.xaml.cs):
外部命名空间:
using GoogleAds;
内部类:
private InterstitialAd interstitialAd;
在构造函数中:
WP8NativeEventHelper helper = new WP8NativeEventHelper();
helper.SetCSharpShowInterstitialDelegate(showInterstitial);
并创建 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);
}
最后是 OnAdReceived:
private void OnAdReceived(object sender, AdEventArgs e)
{
System.Diagnostics.Debug.WriteLine("Ad received successfully");
interstitialAd.ShowAd();
}
按照本指南设置 admob:https://developers.google.com/mobile-ads-sdk/docs/admob/wp/quick-start
现在让我们使用它。
在 HelloWorldScene.h 添加:
#include "NativeHelper.h"
在 HelloWorldScene.cpp 中:
NativeHelper::showInterstitial();
例如,您可以用同样的方式显示/隐藏/更改 admob 横幅的位置(但是它有问题,所以我正在使用广告中介)。
关于windows-phone-8 - AdMob Interstitial Cocos2d-x WP8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28533001/
我有一个 Android 教育应用程序,用户可以在其中持有“ token ”以获得新内容和功能。 我在 Admob 文档上搜索过,但信息似乎不是很清楚我的情况。 如果要创建一个按钮来打开 Admob
我正在开发一个新应用程序并使用 Admob 转换插页式广告。我在 1-2 个月前对广告进行了编码,一切都很好。这些天我快要发布了,但我注意到广告可能在 2 周后就再也没有显示过。所以我决定调试。一切似
Interstitial 广告正常运行,经过两天的测试后停止运行。我有错误:Possible Unhandled Promise Rejection (id: 0): Error: Request E
我正在使用 admob 的 DoubleClick (dfp) 广告。我想在几秒钟后关闭/关闭 Interstitial。(就像用户没有点击广告一样)。 我可以在延迟后执行 dismissModalV
我在 Cocos2d-X iPhone 游戏中使用了 Chartboost 广告。 当 revmob 横幅打开时,Chartboost 全屏广告有时会向上移动。无法关闭。 截图如下: 代码: [
我遇到了 iAd 全屏广告的问题。我像这样实现 iAd: -(void)showFullScreenAd { //Check if already requesting ad i
Admob 插页式广告应该是全屏的。但是,显示的某些插页式广告并没有覆盖整个屏幕。 我正在使用 admob 的最新 iOS SDK。 View 调试器显示此广告是使用 WebView 呈现的。 有人遇
我已经实现了 Admob Interstitial Ad,它在所有设备上都能正常工作,如以下链接中所述 Google Mobile Ads SDK for iOS .问题是仅在 iPhone X 上进
所以我有一个使用插页式广告的应用程序。具体来说,它是一个用 Swift 编写的 SpriteKit 游戏。 我有代码设置,当用户在游戏结束场景中按下重播按钮时,会出现一个广告,然后它会变回游戏场景以重
我有这个代码: func createAndLoadInterstitial() { interstitial = GADInterstitial(adUnitID: "ca-app-pub
我在集成 Admob 插页式广告时遇到问题。我的应用同时支持纵向和横向,因此我已将 list 设置为: android:screenOrientation="fullSensor" 问题是 Admob
我在我的项目中实现了 AdMob Interstitial 广告,效果很好。现在我希望 AdMob Interstitial 广告只在每五场比赛中出现一次,而不是在每场比赛之后出现。有人可以帮助我吗?
我的 iAd 集成无法正常工作。我尝试实现全屏广告。广告出现了,但当我按下“X”按钮关闭时,它没有关闭。 也许您可以在我的代码中找到问题?我不知道要更改什么并且已投入大量时间来解决问题但没有成功。 更
我正在使用 Swift 在我的应用中植入插页式广告。我已经设法让它显示插页式广告,但没有关闭的“X”按钮来摆脱广告。这是为什么? 最佳答案 我也找不到为什么内置框架不提供关闭按钮的答案,但我最终使用了
我已经做到了,当用户点击一个按钮时,它会显示插页式广告,但我不希望这样。我希望如果用户使用应用程序 1 分钟,那么它会自动显示广告,并且在用户关闭应用程序后一段时间后它再次出现。 这是我的带有按钮的代
过去 15 天到现在,我的 admob 间质性单元 ID 总是获得太少的匹配请求。对于 15000 个插页式广告请求,我只匹配了 ~1500 个(~10%)。 我找不到根本原因。低匹配是来自 admo
我正在将 AdMob 集成到我的应用程序中制作 android 应用程序,我正在使用 AdMob 在 WebView 加载 20 秒后显示广告。问题是当用户在 20 秒之前关闭应用程序时,插页式广告仍
我的应用程序会在您启动时打开一个 Publisher InterstitialAd,但当用户关闭时它会重新打开。此过程不断发生,然后您无法使用应用程序,谁能帮助我? public void getIn
当我显示 Admob 插页式广告时,它显示正常,并且我注册了一个监听器来捕获 onAdClosed 事件,但问题是我实际上无法从与我的 UI 交互的该事件中执行任何操作,因为插页式广告已将其关闭全部。
我在 SpriteKit 的 GameOverScene 中实现了 iAd 插页式广告。出于某种原因,当插页式广告弹出时,如果我触摸与按钮所在位置相同的位置,我仍然能够听到按钮点击的声音。如果用户不小
我是一名优秀的程序员,十分优秀!