まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。
この広告は、90日以上更新していないブログに表示しています。
本記事は、Windows 上で Cocos2d-x 2.x のプロジェクトをビルドするための環境を構築するための手順を書いたものです。 通常はCygwin が必要となりますが、本記事ではAndroid NDK の実験的な機能を使うことでCygwin を使用せずにビルドします。
Cocos2d-x とは、クロスプラットフォームな 2Dゲームエンジンです。
C++、Javascript、そしてLua のいずれか*1 の言語でゲームを開発し、それをビルドすることでiOS やAndroid、Windows Phone、BlackBerry、Tizen などで実行できるようにすることができます。 また、ブラウザ上で動くようなゲームを開発したりもできるようです。
Android アプリ用のゲーム開発によく用いられているらしいと聞きますが、実際のところどうなのかは知りません。 最近だと 『ドラゴンクエスト モンスターズスーパーライト』 で使われているようですね。
今回は、Cocos2d-x でAndroid アプリを開発するための環境の準備について説明します。 OS はWindows を対象とします。 (Linux やOS X での環境準備はWindows よりも簡単なはずです。) あと、JDK は既にインストールされているものとして話を進めます。
この説明の中でインストールする各種ソフトウェアのバージョンは次のとおりです。
Android アプリ開発を行っている人は既にインストール済みだと思いますが、まだ準備していない人は準備する必要があります。
Eclipse なども含まれているパッケージとして ADT Bundle が配布されていますので、ADT Bundle をダウンロードして展開します。 展開する場所はどこでもよいです。 展開後のディレクトリの中のeclipse ディレクトリを開いて、eclipse.exe でEclipse を起動できます。
SDK Manager でAndroidSDK tools などをインストールしないとだめかもしれないですが、ちゃんと調べてません。 普通にAndroid アプリ開発をできる環境が整っていればよいと思います。
Cocos2d-x では、Android アプリ用のネイティブコードのビルドを行いますので、Android NDK も用意する必要があります。
上のページからダウンロードして、展開します。 このディレクトリの置き場所もどこでも大丈夫です。
Cocos2d-x では、プロジェクトの生成の際にPythonスクリプトが使用されますので、Python をインストールする必要があります。Python 3 系ではなく、Python 2 系をインストールしましょう。
Cocos2d-x をダウンロードします。 次のページがダウンロードページなので、ここから Cocos2d-x 2 系をダウンロードします。 (現時点ではバージョン 3 系は beta 版なので、とりあえず 2 系で説明を進めます。)
ダウンロード完了後、ZIP ファイルを展開します。 展開先はどこでも良いです。
Cocos2d-x のプロジェクトを作成し、Android アプリとしてビルドするまでの流れを説明します。
まずはプロジェクトの作成です。
Cocos2d-x のディレクトリの中の tools\project-creator ディレクトリに移動し、create-project.py を実行することでプロジェクトを作成できます。
C:\Python27\python.exe ./create_project.py -project MyGame -package com.vividcode.cocos2d.app.MyGame -language cpp
Python を C:\Python27 にインストールしたのであれば、上のように実行すれば 「MyGame」 というプロジェクト名、「com.vividcode.cocos2d.app.MyGame」 というパッケージ名、そして主な開発言語はJavaScript で新しいプロジェクトが作成されます。 開発言語として指定できるのは cpp、lua、javascript のいずれかです。
Cocos2d-x のディレクトリ直下の projects ディレクトリの中に、新しいプロジェクトが作成されます。 プロジェクトのディレクトリの中に、各種プラットフォーム用のディレクトリがあります。 例えば今回の例だと、projects\MyGame が Cocos2d-x のプロジェクトで、さらにその中の proj.android というディレクトリがAndroid 用にビルドする際に使用するディレクトリです。
さっそく、できたてのプロジェクトをビルドしてみます。 まずは JNI 共有ライブラリをビルドします。
Cocos2d-x 2 系では、ビルド時に build_native.sh というシェルスクリプトを使用するようになっています。 よって、プロジェクトに手を加えずにWindows 環境でビルドするにはCygwin などを使用する必要があります。 しかしながら、いちいちCygwin を用意するのも面倒ですし、シェルスクリプトがやっていることは単なるファイルのコピーとAndroid NDK のビルド処理の実行だけですので、自分でWindows 用の cmd ファイルを書いてしまえば良いです。
次の記事を参考にしました。
例えばC++ で開発する場合は、次のような build_native.cmd というファイルを作れば良いです。
@rem make sure assets is existrmdir /s /q "assets"mkdir assets@rem copy resourcesxcopy ..\Resources .\assets /E /QSET NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt%NDK_ROOT%\ndk-build.cmd
これはあくまで Cocos2d-x 2.2.2 におけるC++ を開発言語としたプロジェクトでの build_native.sh の代わりですので、開発言語が違う場合やバージョンが違う場合は、build_native.cmd ファイルの中身も変わってきます。 自分で build_native.sh の内容を見て、それに対応した build_native.cmd を書いてください。
また、上のファイルでは次の 2 つの環境変数を使用しています。 実行時には次の環境変数を設定したうえで実行してください。
上のスクリプトでは、Android NDK に含まれる ndk-build.cmd を使用しています。 本来、Android NDK を実行するためにはCygwin 1.7 以降が必要なのですが、Cygwin 無しでビルドするためのWindows 向けのコマンドが実験的に提供されていて、それが ndk-build.cmd なのです。
Experimental features
You can now build your NDK source files onWindows withoutCygwin by calling the ndk-build.cmd script from the command line from your project path. The script takes exactly the same arguments as the original ndk-build script. TheWindows NDK package comes with its own prebuilt binaries forGNU Make,Awk and other tools required by the build. You should not need to install anything else to get a working build system.
Important: ndk-gdb does not work onWindows, so you still needCygwin to debug.
This feature is still experimental, so feel free to try it and report issues on the public bug database or public forum. All samples and unit tests shipped with the NDK succesfully compile with this feature.
Android NDK | Android Developers
Android NDK rev. 7 の変更点に、上のように書かれています。 実験的とは書かれていますが、導入されてから既に 2 年以上経過してるので使って大丈夫でしょう。 (心配なら普通にCygwin をインストールしましょう。)
最後に、アプリ自体をビルドします。 まず、Cocos2d-x のプロジェクトで共通に必要となる libcocos2dx プロジェクトをインポートします。 Cocos2d-x のディレクトリの中の cocos2dx\platform\android\java がそのプロジェクトですので、Eclipse でインポートします。
次に、今回作成したプロジェクトをEclipse にインポートします。
これでEclipse の実行ボタンを押すと、ビルドが行われて端末上にインストールされてアプリが実行されるはずです。
ちなみに上に書いた build_native.sh を実行するという手順ですが、C++ で開発する場合はEclipse でのビルドの際に行われるようにもともと設定されています。 その部分を build_native.cmd を実行するというように書きかえる必要があります。Lua のプロジェクトだと、そもそも build_native.sh をEclipse でのビルドの際に行われるようになっていないような気がするので、ビルド時に実行されるように自分で設定する必要があると思います。 (あるいは毎回自分でコマンドを叩くか。)
Cocos2d-x 2.2 のビルドする環境をWindows で整えるのがちょっと面倒だったのでまとめてみました。 今回はEclipse でビルドしていますが、Ant でビルドできるようになっているので、Ant が使える人は Ant を使った方がいいのかもしれないですね。 あと、最近だとやっぱり Ant より Gradle という感じなので、Gradle でビルドできるようにしてもいいかもしれません。 Gradle でビルドできるようにするのは次の記事が参考になります。
Cocos2d-x 3.0 beta では、Pythonスクリプトでサンプルプロジェクトをビルドするようになったので、Cygwin 無しでサンプルプロジェクトをビルドできるようです。
サンプルプロジェクト以外の、通常どおり作成されたプロジェクトの方も同じように変更されてるのでしょうかね? 試してないのでよくわかりません。
久々にドキュメントがまとまってないものに触った気がする。
*1:多分いずれか。 混ぜることはできないと思う。
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。