Cocos2d-x:Android用のプロジェクトを構築する

前の記事で、クロスプラットフォームの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.solibcocosdenshion.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デバイスのエミュレーターで正常に起動しました。



All Articles