「まだ3.4なのか」と言われそうですが、
eclipse環境だとなにもいじらないでビルドできるのがこのバージョンまでなので、
まだ粘ってこの環境でいくつかゲームを出したいと思っている私です。
というのもandroid studio は「結局コンソールでビルドだよ」みたいな記事が山ほどあり、
IDEだけでできない時点で環境が途上なのかという感じがしてるからです。
はやく全部android studioでできるようにしてほしい(切なる願い)。
windows eclipse開発環境でのsdkbox
というレアな(?)状況でsdkboxの利用にちょっと詰まったので、
情報提供という意味でログにしておきます。
sdkboxですが、わかりやすい手順的な記事がないようなので、ちょっと書いておきます。
まず、「sdkbox本体ってどこにあるの?」的なところから迷ったわけですが、
構成として、
-インストーラー
-各プラグイン
に分かれており、以下のページから入って、それぞれのプラグインをインストールする、
というやり方になっています。
http://www.cocos2d-x.org/sdkbox
sdkboxのインストーラーは、ダウンロードするかコマンドでPCにインストールしますが、
僕はダウンロードして使いました。
で、パスを通せばいいのですが横着して、パス指定をしてsdkbox.batを叩いて使っています。
要するに各プラグインをインストールするとき、プロジェクトの直下、例えばあなたが
hogeというゲームを作っているなら、cocos2dxのproject/hogeフォルダに行き、
C直下にインストーラーのフォルダを置いたとしたら、
C:\sdkbox_installer\sdkbox import share
などとしてsdkbox.batを実行するわけです。
上の場合だと、ソーシャルシェアプラグインがプロジェクトにインストールされます。
で、eclipse環境の場合、これだけだとビルドは通るんですが、実行すると落ちます。
プラグインのバイナリが見つからない、と、javaレベルで怒られます。
で、eclipseのhogeプロジェクトフォルダのプロバティ>androidでライブラリを見てみると、
インストールしたプラグインが見当たりません。
つまり、プロジェクトにsdkboxのプラグインをimportする必要があるわけです。
なので、package explore(左にあるフォルダ構成を表示しているペイン)にて左クリック>importで、
今回の場合だとshareプラグインの場所を指定して、インストールします。
場所は
(あなたのcocos2d-xフォルダ)/projects/hoge/cocos2d/cocos/platform/android/java/libs
に、インストールしたプラグインが入っているので、そこを指定します。
shareプラグインの場合、複数のimportが必要で、終わったときに以下のようになります。
で、無事インポートできれば、ビルドが成功、アプリにプラグインが仕込めるようになります。
sdkboxは今のところshareとiap(In app purchase)だけ入れてますが、
iapはimportがいらない(?)ようです。
iapは初期化処理を入れたシーンにiapのcallback関数がないと「見つかりません」的なことを言われますが、
動作はしています。
shareは、ツイッターの場合、twitter appのデベロッパーに登録し、ツイッターアプリを1つ作って、
keyとsecretが必要になります。
あとちょっと引っかかったのが、resourcesに置くsdkbox_config.jasonに余計な記述があったり、
カンマが足りなかったりすると、実行してもうんともすんとも言いません。
(logcatに赤い字で、「sdkbox share failed」みたいなエラーが出る)
facebookプラグインも同様です。
facebookプラグインは、ツイッターと同様、facebook appを設定する必要があります。
大した手間ではありませんが、これも設定が1つでも間違っているとまたうんともすんとも言いませんので、
ちゃんと以下のページを見て、設定する必要があります。
http://blog.cocos2d-x.org/2016/02/setting-up-facebook-app-for-sdkbox-services/
あとはツイッター、facebookシェアとも、ちゃんとコードを記述すれば、ダイアログが出て
シェア処理をしてくれます。
画像も添付できるのがいいですね(url指定もできるので外部サーバーに置いておくといいかも)
一応動くコードを書いておきます。
twitterShare
sdkbox::SocialShareInfo info;
info.text = "#sdkbox(www.sdkbox.com) - the cure for sdk fatigue ";
info.title = "sdkbox";
//info.image = "path/to/image"
info.link = "http://www.sdkbox.com";
info.showDialog = true;
info.platform = sdkbox::SocialPlatform::Platform_Twitter;
sdkbox::PluginShare::share(info);
facebookShare
sdkbox::FBShareInfo info;
info.type = sdkbox::FB_LINK;
info.text = "#sdkbox(www.sdkbox.com) - the cure for sdk fatigue ";
info.title = "sdkbox";
//info.image = "path/to/image"
info.link = "http://www.sdkbox.com";
sdkbox::PluginFacebook::dialog(info); // dialogのところをshareにすると自動投稿になる