Cocos2d-xをライブラリ化する手順
こんにちは。清水です。
従来利用されていたCocos2d-xプロジェクト管理ツールであった「Cocos」には、GUIでCocos2d-x用プロジェクトを簡単に作成することができました。しかし「Cocos」の開発が終わってしまったため、プロジェクト作成にはcocosコマンドから生成する必要があります。 「Cocos」にはライブラリ化されたCocos2d-xを利用できる機能があり、ゲーム開発を容易にしてくれていました。cocosコマンドにもその機能はありますが、少し導入手順が複雑ですのでここで紹介します。
1. Cocos2d-xのライブラリ化
cocos gen-libsコマンドにより、Cocos2d-xをライブラリ化します。弊社では開発時はMacアプリを作成しているため、iOSの他にMac向けのライブラリも作成します。ライブラリ化には時間がかかるため、休憩前など時間に余裕があるときに実行しましょう。開発中にCocos2d-xのログが必要な場合は、「-m debug」オプションを付加すればいいでしょう。また開発中にCocos2d-xのソースコードを修正する必要がある場合は、再ビルドする必要があります。
cocos gen-libs -p ios cocos gen-libs -p mac
Androidに関しては現在バグがあるため、本ブログではスキップします。すでにGitHub上の開発版では修正済みでありv3.13では解消される予定です。(どうしても対応が必要な方は、GitHubからソースコードを取得し適用してください。)
https://github.com/cocos2d/cocos2d-x/issues/16068
ライブラリ化が終わると、Cocos2d-x直下のprebuildフォルダに、それぞれiOSとMacのフォルダが作成され、その中にライブラリが格納されています。
2. プロジェクト作成
いつものようにプロジェクトを作成します。ここではプロジェクト名「PrebuildTest」とし、開発言語にC++を選択しました。
cocos new PrebuildTest -l cpp
3. Cocos2d-xの参照先を変更
iOSとMac用アプリのため、XcodeよりCocos2d-xの参照先を先ほど作成したライブラリに変更します。その手順を詳細に紹介します。
3-1. cocos2d_libsのTARGETSを削除
プロジェクトが参照しているcocos2d_libs.xcodeprojのTARGETSから下記を削除します。
3-2. ライブラリのコピー
1.で作成したライブラリを直接プロジェクトにドラッグアンドドロップしてもいいですが、弊社ではチーム開発を行っているためパスを共通な位置としています。ここでは明示的にproj.ios_mac配下にlibsフォルダを作成し、その中にiOSとMac用のライブラリを配置しました。
3-3. ライブラリのリンク
プロジェクトのTARGETSから、それぞれiOSとMac用のライブラリを追加します。
3-4. ライブラリのパス設定
ライブラリがあるパスをプロジェクトに設定します。ここではproj.ios_mac配下にlibsフォルダを作成したので、パスは次のように設定しました。
$(SRCROOT)/libs
4. 実行確認
iOSとMacでアプリが正常に実行されることを確認します。もちろんCocos2d-xがライブラリ化されているので、すぐにアプリが実行されます。もし正常に動作しない場合は、再度手順を見直してください。