先日「Nana Live+」のiOS版をリリースしましたが、せっかくcocos2dxで作成したのでAndroid版もリリースすることにしました。ネイティブ連携しなければならない部分がいくつかあったので、その部分でかなりハマりました。この記事ではEclipseの使い方等は説明していません。

開発環境


OS X 10.9.3 Marvericks
Cocos2d-x v3.2


とりあえず実行できるようにする

proj.android/jni/Android.mk」を下記に変更してみました

とりあえずこれで実行できるようになりました。
(この時ネイティブ連携の処理はコメントアウトなりしておきます)


ネイティブ連携部分を作る

cocos2dxを使っていて1番面倒なのがここです。
やってて一生やりたくないと思えました。笑

NanaLive+ではファイルを3つに分けています。
URLを開く時は下記のようにしました。
NativeBridge.h
NativeBridge.mm(iOS向けの処理)
NativeBridge.cpp(Android向けの処理)

NativeBridge.h


NativeBridge.mm


NativeBridge.cpp


最後にNativeBridge.cppの16行目にある「onLaunchBrowser」を実装します。
ファイルの場所は「proj.android/src/org/cocos2dx/cpp/AppActivity.java」です。


NativeBridgeの呼び出し方は簡単です
URLはプラットフォームによって分ける事ができます



アプリのタイトルを変更してみる

「proj.android/res/values/strings.xml」からapp_nameの部分を変更するだけです。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">NanaLive+</string>
</resources>


アプリアイコンを変更してみる

下記フォルダの中にアイコンファイルがあるのでそれを差し替えるだけです。
proj.android/res/drawable-hdpi
proj.android/res/drawable-ldpi
proj.android/res/drawable-mdpi
proj.android/res/drawable-xhdpi


Eclipseからapkをエクスポートしたあとベータ版として公開してみた

apkのエクスポート自体はググると結構記事が出てくるので省略します。
というわけでapkは無事出力できたので、ベータ版テストというのを使ってみました。
一応実機でバージョン2.3.3は起動できたので、Android要件を2.3.3以上に設定していました。それにもかかわらず、ベータテスト版で公開された時に表示されていたAndroid要件はなぜか1.6以上となっている…

これは一体...
同じ現象になっている人も (IT探検記さん
ベータ版だと正しく表示されないってことなんですか?知りませんよそんなこと;;
完全に自分の設定ミスだと勘違いしていました。

騙されたと思って製品版にしてみると正しいAndroid要件が表示されました。




以前から作成していた「Nana Live+」というアプリですが、本日ようやくリリースされました(・∀・)

機能一覧

AppStoreに説明文は一応書いてありますが、多分誰も見ないですよね

以下AppStoreの説明文
◇ 水樹奈々さんのライブツアー、イベントでの物販アイテムを管理するためのアプリケーションです
 ■ データを更新することで物販情報が更新できます
 ■ ライブの物販毎にリストを作成できます
 ■ 作成するリストの名前には記号は使えません
 ■ 精算ボタンを押すと、選択中リストだけの購入予定グッズ一覧が表示されます
 ■ 全精算ボタンを押すと、選択中ライブの全リストの購入予定グッズ一覧が表示されます

◇ 全精算ボタンの使い方
 ■ 友達用のリストなどを作った時に、まとめて購入したい場合は全精算を使います
 ■ 精算ボタンは選択中リストだけの購入予定グッズが表示されるので注意してください


基本的な機能は「Nana Live」と同じですが、私の想定している使い方を書いておきます。

データを更新する

◇ アプリ起動時に更新データがある場合は自動的に更新されます
◇ 最新のデータの場合は以下のようになります



◇ アプリ起動中にデータを更新したい時
 ■ 「メニュー」を押すと「データ更新」が出てきます



最初にすること

◇  NanaLive+では「リスト」を作成することで物販管理ができます
 ■ 「リストを作成」は「メニュー」を押すと出てきます
リストはライブ単位で登録されます


◇ 「リストを作成」を押すと名前を入力する画面が表示されます
名前には記号が使えません


◇ リストの作成が成功すると以下のように表示されます



◇ 作成されたリストをタップすると個人用メニューが表示されます
 ■ このメニューからグッズの選択や合計金額の計算などが行えます




ライブを変更する

◇ 最初は「LIVE JOURNEY」がセットされていることに気づくと思います
 ■ ライブを切り替えるためには「メニュー」の「ライブを変更」を押します



◇ 切り替えたいライブを選択します




◇ ライブを切り替えると先ほど作成したリストが消えていることに気づきます
※ リストはライブ単位で管理しているため、再び「LIVE JOURNEY」に切り替えると先ほど作成したリストが表示されます


グッズを選択する

◇ 作成したリストをタップして「メニュー」を表示します
 ■ 「グッズ選択」を押します



◇ この画面で購入予定のグッズを選択していきます



◇ ここではパンフレットを購入してみます
 ■ 必要な個数分「+」を押します
 ■ 「-」を押すと個数を減らせます
 ■ 購入限定数を越える場合は「+」を押しても反映されません






グッズの合計金額を計算する

◇ 「メニュー」を押すと「リスト精算」が表示されます



◇ 「リスト精算」はここでも同様に行えます




◇ 先ほどパンフレットを選択したので購入予定グッズ一覧にパンフレットが表示されます
 ■ Nanacaについても計算されますが、Nanacaのもらえないイベントもあるので注意です




◇ 「パンフレット」をタップすると購入済が表示されます
 ■ 売り子さんに伝えたグッズは購入済にしておくと安心です
 ■ 一度この画面を閉じると購入済の表示はリセットされます





リスト全ての合計金額を計算する

◇ 複数のリストの合計金額をまとめて計算したい場合があります
 ■ 友達用のリスト、お土産用のリストなども一緒に計算したい!

◇ 試しに「ともだちA君」リストを例に説明します




◇ ともだちA君はリストバンドが欲しいと言っていたので購入予定にしておきます





◇ 最初の画面に戻って「メニュー」から「全リスト精算」を選択します




◇ 現在表示されているリスト全部の合計金額が計算されます




あまりCocos Studioを使ってるという人を聞かないのですが、最近使い始めたのでハマったところなどを書いていこうと思います。Cocos Studioについて検索をかけてもあまり引っかからないのがつらいですね。

開発環境

Windows7
OS X 10.9.5 Marvericks
Cocos2d-x v3.2
Cocos Studio v1.6.0.0

Cocos Studioは公式サイトからダウンロードできます
http://www.cocos2d-x.org/download

現在のところMac版はUIエディタしかないようなので、基本的にWindowsを使うしかなさそうです。最近では、Cocos Studioについての書籍も発売されてます。キャラクターのアニメーションなど、複雑なものについてはプログラムで書くよりも数倍楽に作れそうです。


UIエディターを使ってみる

UIエディターを選択します



とりあえずCanvasを640*960に変更します



ラベルを配置してみます



位置やサイズ、名前を変更できます



最後にこのUIをXcodeで使えるようにエクスポートします



Cocos2dxのプロジェクトにエクスポートしたフォルダを追加します
てきとうにプロジェクトをcocos newで作りました
写真のようにリソースを追加します


実行してみます



ちゃんと表示できました


テキストを変更してみる

初見だとこれが一番ハマります。
試しにlayout上にあるノードを全部表示してみます。UIエディタで設定したタグと名前がちゃんと取れているのが確認できました。

layout上のノードはタグと名前のどちらでも取得することができます
ちなみにText*にしないとだめです




UIエディタ上ではLabelを配置したのでdynamic_castでLabelを指定すればいけるのではと思ってしまうのですが、それでは落ちます。写真のようにブレークポイントでも入れてみると型が分かります。




お疲れ様でした




GitHub

https://github.com/sacchy/CocosStudioTest