Cocos2dx v3.3の環境構築方法について書きます。
内容はMac上で環境構築を行い、iOS/Android向けにアプリ起動させるところまでとなります。
なお、v3.3自体のバージョンアップ情報は公式のnews内容を参照ください。
環境
Mac上での構築を行います。Cocos2d-x以外は事前に導入済みという想定で書きます。
Cocos2dxのインストール
Cocos2dx公式サイトのダウンロードページからDL可能です。
http://www.cocos2d-x.org/download
- 【Cocos2d-x】欄の下にある「Download v3.3」ボタンを押下し、DL開始
- DL完了後、任意のディレクトリへzip解凍して配置
Cocos2dxのパスを通す
Cocos2dxのプロジェクト作成する際、ターミナル上からコマンドを叩く必要があるため、まずはCocos2dxディレクトリへのパス通しを行っておきます。
- Python 2.7 をインストール
- ターミナル起動
- ターミナルから、DLしたCocos2dxディレクトリ直下へ移動
- ターミナル上で以下のコマンドを実行後、ターミナルを再起動
$ ./setup.py
これにより、~/.bash_profile にCOCOS_X_ROOTとCOCOS_TEMPLATES_ROOTにパスが追加されます。Cocos2dx v3.3以外のバージョンが設定済みだった場合、内容が書き換わります。
プロジェクトの新規作成
下準備は終わりましたので、いよいよCocos2dxプロジェクトを作成します。
- ターミナル起動
- ターミナルから、プロジェクトを作成したいディレクトリへ移動
- ターミナル上で以下のコマンドを実行
$ cocos new GameProject -p jp.hoge.gameproject -l cpp
「GameProject」はプロジェクト名、「jp.hoge.gameproject」はパッケージ名です。作成時には書き換えて作成ください。
Android対応
Androidの環境構築は若干手間ですので、見出しを分けての解説をします。
Android SDK/NDKのパスを通す
ここで1つ注意する事があります。Cocos2dx v3.3 から、Android NDK r10c 以上でのビルドが必須となりました。
理由としては Android 5.0(Lolipop) 対応が行われているからです。
NDK_ROOT=/NDK配置親ディレクトリ/android-ndk-r10c export NDK_ROOT ANDROID_SDK_ROOT=/SDK配置親ディレクトリ/android-sdk export ANDROID_SDK_ROOT
EclipseへCocos2dフレームワークをインポート
作成したプロジェクトをインポートする前に、Cocos2dxフレームワーク自体のインポートを行う必要があります。
- Eclipse起動
- Eclipse上のメニューから File > Import を選択
- Android > Existing Android Code Into Workspace を選択
- Import Projects画面のRoot Directory項目にて「cocos2d-x-3.3/cocos/platform/android/java」を選択
- Finishボタンを押下
これでCocos2dxのlibcocos2dxプロジェクトがインポート出来ます。インポート後、クリーン&ビルドしておいてください。
Cocos2dxの複数バージョンを同一Eclipseで管理する場合はプロジェクト名にバージョン番号を入れておくと良いです。
Eclipseへ作成したプロジェクトをインポート
作成したプロジェクトをインポートします。
ビルド
Cocos2dx向けに作成したコードは別途ビルドする必要があります。
- ターミナル起動
- ターミナルから、「作成プロジェクト/proj.android」へ移動
- ターミナル上で以下のコマンドを実行
$ ./build_native.py
問題なくビルドが成功したら以下の様な内容が出力されます。
The Selected NDK toolchain version was 4.8 ! (中略) [armeabi] SharedLibrary : libcocos2dcpp.so [armeabi] Install : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.so make: Leaving directory `作成プロジェクト/proj.android'
問題がある場合はsoファイルが出力されず、途中でErrorを吐きますので内容変更してクリーン&リビルドしておいてください。
Androidプロジェクトをデプロイ
これでデプロイ出来ます。
Cocos2dxアプリ開発をする際、Android側の確認をする場合は「ビルド - Androidプロジェクトをデプロイ」の手順を行う必要があります。
もしくはEclipseのプロジェクト設定からRun As時にbuild_native.pyを実行する必要があります。
Androidのビルドパス設定
Androidの場合はビルド対象のソースファイルのパスを「作成プロジェクト/proj.android/jni/Android.mk」に追加する必要があります。
毎回追加していくのは手間なので、ファイルの一部を以下のように変更します。以前どこかで見かけたエントリーの内容をほぼそのまま使わせて貰っています*2。
(略) LOCAL_MODULE_FILENAME := libcocos2dcpp #ソースファイルを自動検索して設定 ifeq ($(HOST_OS),windows) CPP_FILES := $(shell dir $(LOCAL_PATH)/../../Classes/*.cpp /b/a-d/s) else CPP_FILES := $(shell find $(LOCAL_PATH)/../../Classes -name *.cpp) endif ifeq ($(HOST_OS),windows) CPP_FILES_JNI := $(shell dir $(LOCAL_PATH)/*.cpp /b/a-d/s) else CPP_FILES_JNI := $(shell find $(LOCAL_PATH) -name *.cpp) endif LOCAL_SRC_FILES := $(CPP_FILES_JNI:$(LOCAL_PATH)/%=%) LOCAL_SRC_FILES += $(CPP_FILES:$(LOCAL_PATH)/%=%) #SQLite3を利用する時は追加 #LOCAL_SRC_FILES += ../../Classes/lib/SQLite3/sqlite3.c ifeq ($(HOST_OS),windows) LOCAL_C_INCLUDES := $(shell dir $(LOCAL_PATH)/../../Classes /b/ad/s) else LOCAL_C_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d) endif ifeq ($(HOST_OS),windows) LOCAL_C_INCLUDES += $(shell dir $(LOCAL_PATH) /b/ad/s) else LOCAL_C_INCLUDES += $(shell find $(LOCAL_PATH) -type d) endif LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/extensions #自動検索して設定する処理はここまで LOCAL_STATIC_LIBRARIES := cocos2dx_static (略)
Cocos2dxアプリ開発する上でタメになる公式ページ
- Cocos2d-x公式トップページ
Cocos2dxをDLする時だけではなく、定期的に更新される「What's new?」や「Recent Wikis」はタメになるので読んでおくと良いと思います。 - Cocos2d-x Programmers Guide v3.3
公式で作成されたCocos2dxのプログラミング ガイドです。Cocos2dxフレームワークを使って欠かせない情報が集約されており、まずはこのドキュメントを読むと良さそうです。ただ、現時点でcoming soonが多いため、もう少し埋まってからのほうが良いのかもしれませんが... - Cocos2d-x Forum
公式のフォーラムです。自分が投稿する時でなくても閲覧するようにしておくと、自分が利用しているバージョンの不具合等を早めに知ることが出来ます。