Cocos2D-X游戏中的Chartboost

3

我在cocos2d-x游戏中使用了chartboost sdk,我可以在appDelegate.m文件中使用下面的代码,它运行得很好...但是没有c++调用chartboost。我该如何从c++文件中调用showInterstitial API?

#define CHARTBOOST_APP_ID =@"Here added valid app id from chart boost account"
#define CHARTBOOST_APP_SIGNATURE @"Here added valid signature from chart boost"

Chartboost *cb = [Chartboost sharedChartboost];
cb.appId = CHARTBOOST_APP_ID;
cb.appSignature = CHARTBOOST_APP_SIGNATURE;

[cb startSession];

[cb showInterstitial];

是否有Chartboost SDK的C++版本?

更新: 简单的解决方案是使用Chartboost SDK的Obj.C版本,然后在.mm文件中使用C++桥接类,并从其他.cpp文件中访问它。这是最简单和最好的方法。

以下是文件:下载


你能否简要地详细说明一下你是如何实现这个的...我也想在cocos2d-x 3.2中使用它。 - shaqir saiyed
@shaqirsaiyed,在上面的问题中,请查看最后一个下载链接,下载MyChartboostBridge.h文件并检查......享受吧! - Guru
4个回答

3
目前Chartboost SDK没有C++版本,但是许多开发者已经成功地将SDK集成到了Cocos2d游戏中。通常他们会编写自己的包装器,但是这位开发者已经将其开源:http://www.cocos2d-x.org/projects/cocos2d-x/assets/11 https://github.com/wenbin1989/Charboost-x

1
这些链接似乎仍然无效。要么修复它们,要么删除它们。 - Jamal

2

Chartboost提供iOS开发和Android开发的SDK。

因此,答案是“不”。现在没有C++的SDK。


是的,我在 Chartboost 网站上搜索过了。但是如何在 Cocos2d-x 游戏中使用它呢?我的意思是如何从 C++ 文件中调用 showInterstitial 函数? - Guru
你的代码很好。你是否设置了你的CB账户和广告系列? - Hemang
你需要在Chartboost中创建公共广告或交叉推广广告,并添加你的测试设备。这肯定会起作用的。如果不行,请告诉我。 - Hemang
嗯..是的,即使我在appDelegate中使用它,广告也会出现...这不是问题,我该如何从cocos2d-x游戏的c++代码中调用同样的东西? - Guru
从C++代码来看,它不起作用。您可以在AppDelegate中定义全局对象,然后在整个游戏中使用它。无法从C++代码调用这些函数。 - Hemang

0
你可以像这样做...
将以下内容添加到你的AppDelegate.h文件中:
void InitChartBoost();
void ShowInterstitial();

然后创建一个名为AppDelegate.mm的文件并添加以下方法:
void AppDelegate::InitChartBoost()
{
    id appDelegate = [[UIApplication sharedApplication] delegate];

    // Initialize the Chartboost library
    [Chartboost startWithAppId:@"your app id"
                  appSignature:@"your app signature"
                      delegate:appDelegate];
}

void AppDelegate::ShowInsterstitial()
{
    [Chartboost showInterstitial:CBLocationHomeScreen];
}

0

最好和安全的方法是编写自己的Obj.C和C++桥接类。

这里是文件,并在Cocos2dx游戏中添加Chartboost sdk的objectiveC版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接