Cocos2d-x環境構築

以前ハッカソンをやったときにCocos2d-xを触ってみたのでそのときのメモ。環境はMac

ダウンロード

http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Downloadからcocos2d-2.0-x-2.0.4みたいのをダウンロード。解凍したファイルを任意のフォルダに移動 。

iOS 手順

テンプレートのインストール

sh cocos2d-2.0-x-2.0.4/install-templates-xcode.sh -u

プロジェクト作成
  1. Xcode起動
  2. 新規プロジェクト作成
  3. cocos2d-xテンプレートが追加されているので選択
  4. 作成されたプロジェクトをRunすれば起動する

Android 手順

各種インストール
.bash_profile等でSDK Path設定

export NDK_ROOT="/SDKs/adt-bundle-mac/ndk/"
export ANDROID_SDK_ROOT="/SDKs/adt-bundle-mac/sdk/"

EclipseにCocos2dxライブラリをインポート
  1. file->importを選択
  2. Existing Projects Into Workspaceを選択
  3. Select root directoryでcocos2d-2.0-x-2.0.4フォルダの下の、cocos2dx/platform/android を選択
  4. Finishを選択してlibcocos2dxをインポート
    • このときcopy projects into workspaceにチェックを入れないようにする
Android Project作成
  1. cocos2d-2.0-x-2.0.4に移動しcreate-android_project.shを実行
  2. Bundle ID入力
  3. API Levelを選択
  4. プロジェクト名を入力
  5. cocos2d-2.0-x-2.0.4直下にAndroidプロジェクトが作成される
  6. Eclipseにインポート
ビルド

proj.androidにあるbuild-native.shを実行。このとき、Android Projectをcocos2d-2.0-x-2.0.4/から移動してるとエラーになるので.bash_profileに以下を追加

export COCOS2DX_ROOT="/SDKs/cocos2d-2.0-x-2.0.4"

さらに、build_native.shのCOCOS2DX_ROOTをコメント化

#COCOS2DX_ROOT="$DIR/../.."

これで、一応Eclipseでビルドして実行できるようになる。
やや無理矢理な感じがするけど、cocos2d-x直下にandroidプロジェクトを置けってことなんだろうか...


ちなみにソースを追加した場合jni/Android.mkのリストにも追加する必要がある。

LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/GameOverScene.cpp

Android.mkへの自動追加はこの記事を参考にすればできそう

iOSAndroidソース統合

Androidプロジェクト作成後、Xcodeプロジェクト作成して、ディレクトリ構成を以下みたいにして、Xcodeプロジェクトごちゃごちゃいじった。もっと効率的に作成する方法があるんだろうか。

Hackathon/
├── Classes # AndroidiOSともにこのディレクトリのソースを参照
├── Resources # AndroidiOSともにこのディレクトリのリソースを参照
├── proj.android
│   ├── assets
│   ├── bin
│   │   ├── classes
│   │   └── res
│   ├── gen
│   │   └── jp
│   ├── jni
│   │   └── hellocpp
│   ├── libs
│   │   └── armeabi
│   ├── obj
│   │   └── local
│   ├── res
│   │   ├── drawable-hdpi
│   │   ├── drawable-ldpi
│   │   ├── drawable-mdpi
│   │   ├── drawable-xhdpi
│   │   ├── layout
│   │   └── values
│   └── src
│   ├── jp
│   └── org
└── proj.ios
├── Hackathon
│   ├── Resources
│   ├── ios
│   └── libs
└── Hackathon.xcodeproj
├── project.xcworkspace
└── xcuserdata