がおまる開発ブログ

cocos2d-xやlevelhelperを使って iPhone/Androidアプリの作り方を解説します

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

cocos2d-xからツイートする [Android版:簡易編]

Android側でつぶやきをしてみましょう。
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を起動してくださいね。

s_20130116_3.png

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);
}
});

}



つぶやきボタンを押すと下記のようにダイアログが表示されます。
ちょっと初めての方にはややこしいかもしれません。

これを使えば、このタイミングで広告を消したり等、色んな使い方が出来ます。
s_20130116_0.png

s_20130116_1.png

s_20130116_2.png
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://gaomar.blog.fc2.com/tb.php/8-54761d4d
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。