cocos2d-x 3系にsdkboxを利用してAdColonyの動画広告を導入しています。
以下に従って導入を進めております。
https://github.com/glossom-dev/AdColony-Cocos2dx-sdkbox-JP-Support-v3.x
しかし、3.3 Catch AdColony events (optional)のところで、リワード発生のコールバック実装方法がよくわからず詰まっております。
下記のように、sdkbox::AdColonyListenerを継承して実装してください。
#include "PluginAdColony/PluginAdColony.h" class MyClass : public sdkbox::AdColonyListener { private: void onAdColonyChange(const sdkbox::AdColonyAdInfo& info, bool available); void onAdColonyReward(const sdkbox::AdColonyAdInfo& info, const std::string& currencyName, int amount, bool success); void onAdColonyStarted(const sdkbox::AdColonyAdInfo& info); void onAdColonyFinished(const sdkbox::AdColonyAdInfo& info); };
上記そのままのコードをAdColonyHleperクラス名で実装しました。
コールバックを処理するリスナーを作成してください。
sdkbox::PluginAdColony::setListener(this);
このリスナーはどこに設置するのでしょうか。
試しに、メインのゲームシーンに実装したところ、エラーが発生しました。
#include "PluginAdColony/PluginAdColony.h" : : bool GameScene::init() { if (Layer::init() == false) { return false; } sdkbox::PluginAdColony::setListener(this); : :
jni/../../../Classes/Scene/GameScene.cpp: In member function 'virtual bool GameScene::init()': jni/../../../Classes/Scene/GameScene.cpp:47:45: error: no matching function for call to 'sdkbox::PluginAdColony::setListener(GameScene*)' sdkbox::PluginAdColony::setListener(this); ^ jni/../../../Classes/Scene/GameScene.cpp:47:45: note: candidate is: In file included from jni/../../../Classes/Component/AdColonyHelper.h:4:0, from jni/../../../Classes/Scene/GameScene.cpp:5: jni/PluginAdColony/PluginAdColony.h:78:21: note: static void sdkbox::PluginAdColony::setListener(sdkbox::AdColonyListener*) static void setListener(AdColonyListener* listener);
thisには「AdColonyListener* listener」が期待されているので、設置する場所が異なる、というのはなんとなくわかります。
このsetListenerをどこに埋め込めば良いのか、、、ご教示をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/20 13:13