前の記事で、クロスプラットフォームのcocos2d-xエンジンを使用してゲームの作成を開始するのがいかに簡単かを学び、Win32プラットフォームでアプリケーションを実行する方法を学びました。 しかし、これは十分ではありません。主な目標はモバイルデバイスの開発です。 この記事では、Androidオペレーティングシステム用のプロジェクトを作成します。
ソフトウェアのインストール
前の
記事のプロジェクトで作業し
ます 。 JDKおよびJRE、Android SDK、開発環境Eclipse + ADTプラグインのソフトウェアを順次インストールして構成します。 このツールキットのインストールについては、この記事などの多くの記事で説明されています。また、cocos2d-x Webサイトの
Android NDKライブラリが必要です。公式バージョンの使用はお勧めしません
。DmitryMoskalchukのWebサイト そこから必要なバージョンをダウンロードします(
r5を使用します)。 ダウンロード後、アーカイブを便利なフォルダーに解凍します(例:
C:\ android \ android-ndk-r5-crystax-1 \ )。 ネイティブコードをコンパイルするには、バージョン1.7以上の
cygwinが必要です。 setup.exeをダウンロードして実行し、インターネットからインストールを選択し、パス、サーバーなどを指定します。
インストールパッケージの選択ウィンドウが表示され
たら 、
makeパッケージを確認する
ことが重要です(検索フィールドに「make」と入力します)。
すべてがインストールされ、準備ができたら、続行できます。
カスタマイズ
ソースファイルが失われないようにするには、プロジェクトMyCocosProjectのフォルダーの名前を変更します。たとえば、MyCocosProject1という名前にします(忘れずにVisualStudioを閉じてください)。 次に、
create-android-project.batファイルを編集し
ます 。MyCocosProjectプロジェクトと同じ場所にあるcocos2d-xがインストールされている作業ディレクトリにあります(私の場合、ディレクトリ
c:\ android \ rep \ cocos2d-1.0.1-x- 0.9.1 \ )。 テキストエディタでファイルを開き、以下の行でディレクトリcygwin、Android SDK Tools、およびNDKへのパスを変更します。
set _CYGBIN=f:\cygwin\bin
set _ANDROIDTOOLS=d:\android-sdk\tools
set _NDKROOT=e:\android-ndk-r5
変更後、次の行が表示されました。
set _CYGBIN=:\cygwin\bin
set _ANDROIDTOOLS=c:\android\android-sdk-windows\tools
set _NDKROOT=c:\android\android-ndk-r5-crystax-1
ファイルを保存します。
記事を書く過程で、小さな「
バグ 」が見つかりました。 cocos2d-xライブラリの新しいリリース(
1.0.1-x-0.9.1 )では、開発者は、
リソースフォルダーの名前を
リソースで置き換えて、iPhoneとAndroidのプロジェクトを共通のビューにすることを決定しました。 しかし、ある場所でそれを変更することがよくあるように、別の場所で変更するのを忘れていました。 おそらく、開発者はすでにこのエラーを修正しているか、おそらく修正していないでしょう。 バグは自分で修正します。
\ template \ android \フォルダーに移動し、build_native.shファイルを探し、メモ帳で(非標準のメモ帳を使用することをお勧めします)行を編集します。
RESOURCE_ROOT=$GAME_ROOT/Resource
次のものに置き換えます:
RESOURCE_ROOT=$GAME_ROOT/Resources
新しい
create-android-project.batを起動します。 コンソールウィンドウで、javaパッケージの名前(
org.cocos2dx.myappを入力)とプロジェクトの名前(
MyCocosProjectを入力)の入力を
求められます。
彼らが最後に求めるのは、Androidバージョン識別子です。 たとえば、バージョン2.1では
3を指定する必要があり、2.2-4などでは指定する必要があります。 バージョン2.1を使用するため、
3を導入します。
Enterキーを押して、プロセスの終了を待ちます。 スクリプトは、入力したプロジェクトの名前でフォルダーを作成します。 MyCocosProjectおよびその中にテンプレートJavaプロジェクトを生成します。 以前に保存したMyCocosProject1フォルダーからすべてのディレクトリとファイルをコピーし、リソースファイルを
Resourceフォルダーから
Resourcesフォルダーに書き換えます(これは上記の「
バグ 」の結果であり、これは一時的な問題であり、開発者は近い将来さまざまなプラットフォームのフォルダー名に同意します) 。 これで、プロジェクトをAndroid用にコンパイルする準備がすべて整いました。
組立
CygWinを起動し、cdコマンド(
cd /cygdrive/c/android/rep/cocos2d-1.0.1-x-0.9.1/MyCocosProject/android )を使用して、フォルダーに移動し、ファイルbuild_native.sh(
./build_nativeを実行します
.sh )。
すべてが正しく行われた場合、出力でコンパイル済みライブラリ
libcocos2d.so 、
libcocosdenshion.soおよび
libgame.soを取得します。
Eclipseを開いてすぐに使用できる状態にし、新しいAndroidプロジェクトを作成します(
New-> Project、Android project )。 プロジェクトの名前が、スクリプトによって生成されたプロジェクトの名前と一致する
ことが重要です。
MyCocosProject 。 [
既存のソースからプロジェクトを
作成]の横にあるチェックボックスをオンにします。 [場所]フィールドで、プロジェクトのパスを指定します(
C:\ android \ rep \ cocos2d-1.0.1-x-0.9.1 \ MyCocosProject \ android \ )。 APIはAndroid 2.1を選択します。
完了をクリックします。 プロジェクトの準備ができました。 SDKバージョン2.1を使用してエミュレータで起動します。 そして、私たちが見るもの:
画像は上下逆に表示され、テキストと終了ボタンは本来あるべき場所にありません。 ファイル
AppDelegate.cppを開いて、次の行を見つけましょう。
// sets landscape mode
pDirector->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft);
誤った表示に影響を与えたのは彼女でした。 一見すると、このコードではすべてが論理的に見えますが、おそらく開発者は、さまざまなプラットフォームでのコードの普遍性をまだ思い起こしていないでしょう。 この場合、この行をコメントアウトするか、次の構成を記述できます。
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
// sets landscape mode
pDirector->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft);
#endif
ソースコードの変更後にプロジェクトを正常に起動するには、最初にEclipseでプロジェクトをクリーンアップする必要があります(
Project-> Clean )。 次に、cygwinコンソールでbuild_native.sh(
./build_native.sh )を再実行し、Eclipseでプロジェクトを実行します。 変更後、次の図が表示されます。
その結果、私たちは望んでいたものを達成しました。 このプロジェクトは、Androidデバイスのエミュレーターで正常に起動しました。