cocos2d-x→Android特有のIntentを起動させてみましょう!
今回のは簡易編として本来ならJNIとかでやり取りすべきなんですが、
それは別の機会にします。
こんなやり方もあるよって事で(∩´∀`)∩ワーイ
class HelloWorld : public cocos2d::CCLayer {
public:
~HelloWorld();
HelloWorld();
private:
void twitterTapped();
};
ポイントはCC_PLATFORM_ANDROIDですね。
Androidのみここの部分がビルドされて実行されます。
HelloWorld::HelloWorld()
{
CCSize s = CCDirector::sharedDirector()->getWinSize();
CCMenuItemImage* btnTwitter = CCMenuItemImage::create("btnTwitter_OFF.png",
"btnTwitter_ON.png",
this,
menu_selector(HelloWorld::twitterTapped));
CCMenu* menu = CCMenu::create(btnTwitter, NULL);
menu->setPosition(ccp(s.width/2, s.height/2));
this->addChild(menu);
}
void HelloWorld::twitterTapped()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
CCMessageBox("twitter@つぶやきテスト", "command");
#endif
}
この18行目にあるCCMessageBoxはcocos2d-xの機能です。
簡易的なダイアログボックスを表示することができます。
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
CCMessageBox("twitter@つぶやきテスト", "command");
#endif
上記を実行するとCocos2dxActivity.javaにある、
showDialogが呼ばれます。
これを利用して次はAndroid側のソースもいじってみましょう♪
Eclipseを起動してくださいね。

public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelperListener {
/////省略////
private static Cocos2dxActivity myActivity;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.mHandler = new Cocos2dxHandler(this);
// Activityを保持する
myActivity = this;
this.init();
Cocos2dxHelper.init(this, this);
}
@Override
public void showDialog(final String pTitle, final String pMessage) {
if(pTitle.equals("command")&&pMessage.indexOf("twitter") >= 0) {
//「twitter@つぶやきテスト」が飛んできます
// @マークで分割してます。
String[] str = pMessage.split("@");
// ツイッター処理をする
myActivity.twitterPost(str[1]);
} else if (pTitle.equals("command") && pMessage.indexOf("ExitAd") >= 0) {
// Exit広告の処理など
}
}
public void twitterPost(final String message) {
// UIスレッドで実行
Cocos2dxActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// インテント投げて起動するアプリを選択させる
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, message);
startActivity(intent);
}
});
}
つぶやきボタンを押すと下記のようにダイアログが表示されます。
ちょっと初めての方にはややこしいかもしれません。
これを使えば、このタイミングで広告を消したり等、色んな使い方が出来ます。



スポンサーサイト