LoginSignup
7
4

More than 1 year has passed since last update.

cocos2d-x v4でのプロジェクト作成方法(mac)

Last updated at Posted at 2020-08-19

環境

macOS Monterey
cocos2d-x 4.0

c++のプロジェクトを作ってiOSとAndroidのセットアップを行う。

ダウンロード

cocos2d-xをダウンロードする。
https://www.cocos.com/en/cocos2dx/download
ダウンロードしたzipファイルを展開する。

セットアップ

cocos2d-x-4-1.0というような名前のフォルダができるので、それを任意の場所に移動する。
ターミナルを開き、cdコマンドでフォルダに移動する。
setup.pyを実行する。

$ cd cocos2d-x-4-1.0
$ ./setup.py

setup.pyを実行するとNDK_ROOT等の入力を求められるがとりあえず無視する。
最後に下記のようなメッセージが表示される。

Please execute command: "source /Users/username/.zshrc" to make added system variables take effect

書いてあるコマンドをコピペして実行する。パスは環境によって異なる。

source /Users/username/.zshrc

CMakeのインストール

homebrewでCMakeをインストールする。
homebrewがない場合はまずhomebrewをインストールする。
https://brew.sh/index_ja
上記のページに表示されているコマンドをコピーしてターミナルに貼り付け実行する。

CMakeをインストールする。

brew install cmake

CocosConfigDepend.cmakeの修正

このままだとXcodeでビルドエラーが起きるので、
cocos2d-x-4-1.0/cmake/Modules/CocosConfigDepend.cmakeを修正する。
# Locate system libraries on iOSの後の部分を変更する。

find_library(WEBKIT_LIBRARY WebKit)の後ろに
find_library(ICONV_LIBRARY iconv)
find_library(Z_LIBRARY z)
を追記する。

"/usr/lib/libz.dylib"
"/usr/lib/libiconv.dylib"
の二行をコメントアウトして、代わりに
\${ICONV_LIBRARY}
\${Z_LIBRARY}
を追記する。

CocosConfigDepend.cmake
# Locate system libraries on iOS
find_library(UIKIT_LIBRARY UIKit)
find_library(OPENGLES_LIBRARY OpenGLES)
find_library(CORE_MOTION_LIBRARY CoreMotion)
find_library(AVKIT_LIBRARY AVKit)
find_library(CORE_MEDIA_LIBRARY CoreMedia)
find_library(CORE_TEXT_LIBRARY CoreText)
find_library(SECURITY_LIBRARY Security)
find_library(CORE_GRAPHICS_LIBRARY CoreGraphics)
find_library(AV_FOUNDATION_LIBRARY AVFoundation)
find_library(WEBKIT_LIBRARY WebKit)
#edit
find_library(ICONV_LIBRARY iconv)
find_library(Z_LIBRARY z)
#edit   
list(APPEND PLATFORM_SPECIFIC_LIBS
     ${UIKIT_LIBRARY}
     ${OPENGLES_LIBRARY}
     ${CORE_MOTION_LIBRARY}
     ${AVKIT_LIBRARY}
     ${CORE_MEDIA_LIBRARY}
     ${CORE_TEXT_LIBRARY}
     ${SECURITY_LIBRARY}
     ${CORE_GRAPHICS_LIBRARY}
     ${AV_FOUNDATION_LIBRARY}
     ${WEBKIT_LIBRARY}
     ${COCOS_APPLE_LIBS}
     #edit
     ${ICONV_LIBRARY}
     ${Z_LIBRARY}
     #"/usr/lib/libz.dylib"
     #"/usr/lib/libiconv.dylib"
     #edit
     )

プロジェクトの作成

プロジェクトを作ってiOSとAndroidのセットアップをする。

任意の場所でcocos newコマンドを実行するとcocos2d-xのプロジェクトが作成される。
仮にプロジェクト名はCocosTest、パッケージ名はcom.mydomain.cocostestとする。
パッケージ名は、(自分が持っているドメイン名を逆にしたもの).(プロジェクト名)のようにするのが一般的らしい。
言語はC++とする。

cocos new CocosTest -l cpp -p com.mydomain.cocostest

iOS設定

プロジェクトのルートにあるCMakeLists.txtを編集する。
一番下に下記の二行を追記する。

CMakesLists.txt
set_xcode_property(${APP_NAME} SKIP_INSTALL "NO")
set_xcode_property(${APP_NAME} INSTALL_PATH "$(LOCAL_APPS_DIR)")

v3ではxcodeprojファイルが自動で作成されていたがv4では自分で作る必要がある。
プロジェクトフォルダの中にios-buildフォルダを作成し、その中でcmakeを実行する。

cd CocosTest/
mkdir ios-build
cd ios-build
cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos

テスト実行する時はios-build内のXcodeプロジェクトを開いて、左上でプロジェクト名のターゲットを選んで実行ボタンを押す。

スクリーンショット 2020-08-21 22.23.44.png

Android設定

Android Studioがなければインストールする。
https://developer.android.com/studio?hl=ja
Android Studio Arctic Fox 2020.3.1 Patch4を使用。

SDK等のインストール

Android Studioを実行する。
Configure->SDK Managerを開く。
スクリーンショット 2020-08-19 11.11.26.png

Android SDK->SDKPlatformから必要そうなSDKを選んでOKを押す。

スクリーンショット 2020-08-19 11.15.21.png

SDKToolsからNDK、CMakeなどにチェックを入れてOKを押す。

スクリーンショット 2020-08-19 11.18.41.png

バーチャルデバイスのインストール

SDK Managerは閉じて、Configure->AVD Managerを開く
Create Virtual Deviceを押す。
Pixel 3aか何かを選択してインストールする。

プロジェクトをAndroid Studioで開く

Android Studioを起動してimport projectを選択する。

スクリーンショット 2020-08-19 11.24.09.png

プロジェクト内のproj.androidフォルダを選択しopenする。

はじめてプロジェクトを開くとgradleやら何やらを勝手にダウンロードするので完了するまで待つ。
完了すると

NDK not configured. 
Download it with SDK manager.

と表示される。

File->Project Structure->SDK Locationを開く

スクリーンショット 2020-08-19 11.38.56.png

Android NDK Locationのドロップダウンを開くと、パスが自動で入力されるが、OKを押すとNDK does not contain any platformsというエラーが出た。
よくわからないのでNDKはそのままにした。

Project SturctureのProjectタブからAndroid Gradle Plugin VersionとGradle Versionを選択。
新しいものを選んだ。
スクリーンショット 2022-01-03 17.48.55.png
OKを押す。

gradle.propertiesを開いてPROP_APP_ABIの部分を編集する。

PROP_APP_ABI=armeabi-v7a:arm64-v8a

x86を含めると、Google Play Consoleへアップロードした時に「このリリースは Google Play の 64 ビット要件に準拠していません。」というエラーになるので注意。

スクリーンショット 2020-10-02 21.46.59.png

app/build.gradleの最後にあるcompileをimplementationに書き換える。

build.gradle
//dependencies { compile 'com.google.android.gms:play-services-base:16.1.0' }
//dependencies { compile 'com.google.android.gms:play-services-ads:20.1.0' }
dependencies { implementation 'com.google.android.gms:play-services-base:18.0.1' }
dependencies { implementation 'com.google.android.gms:play-services-ads:20.5.0' }

三角の実行ボタンを押すとバーチャルデバイスでアプリが実行されるはず。

スクリーンショット 2020-08-19 11.43.32aaa.png

参考

https://youtu.be/GKT_40cc-a0
https://github.com/cocos2d/cocos2d-x/issues/20608

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4