前言

是的我最近在学习 Cocos2d-x 。你可能会有疑问,已经 2023 年了为什么还要学习 Cocos2d-x ?

Cocos2d-x 最新一次发布是在 2019-12-04,已经 3 年没更新了,这时候学习不是明智之举。

我最初知道 Cocos2d-x 的时候还是上大学那会,在极客学院学了不少知识,后面没什么场景会用到,就再也没使用过了。

我最近又学了是因为我们有个项目要提供 Cocos2d-x 的版本,这么多年过去我也没想到还会有一天要用到。

我在搭建环境碰到了一些问题,记录一下。

下载 Cocos2d-x 引擎

点击Cocos2d-x选择 4.0 版本进行下载, Cocos2d 的官网有好几产品,我们要的是 Cocos2d-x 而不是 Cocos Creator 别下错了。

Cocos Create 使用 Lua 来进行游戏开发的,而 Cocos2d-x 是用 C++ 进行开发。

下载好之后解压,接下来就需要准备 Python2.7 的环境,因为不支持 Python3.x

准备 Python2.7

由于我使用的是 Anaconda ,所以下面以 Anaconda 为例。你可以使用 brew 或者 pyenv 进行安装。

1
2
conda create -n cocos python=2.7 # 创建一个python2.7 的环境,命名为 coocos
conda activate cocos # 激活 cocos 环境

设置 Cocos 环境变量

1
2
3
cd cocos2d-x-4.0 # 进入到解压好的目录
python setup.py # 运行setup 配置环境变量
source .bashrc # 使配置的变量生效

setup.py 会在你的 .bashrc 或者 .zshrc 中写入 Cocos2d-x 需要的环境变量。

在终端中输入 cocos -v 检测是否配置成功,如果有如下输出就表明成功了。

1
2
3
$ cocos -v
cocos2d-x-4.0
Cocos Console 2.3

创建项目

环境变量都配置好了,就可以来创建 Cocos2d-x 项目了

1
2
3
4
5
6
7
8
9
# 格式 cocos new <game name> -p <package identifier> -l <language> -d <location>
cocos new demo -p com.sample.demo -l cpp -d .
> Copy template into /Users/test/demo
> Copying Cocos2d-x files...
> Rename project name from 'HelloCpp' to 'demo'
> Replace the project name from 'HelloCpp' to 'demo'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.sample.demo'
> Replace the Mac bundle id from 'org.cocos2dx.hellocpp' to 'com.sample.demo'
> Replace the iOS bundle id from 'org.cocos2dx.hellocpp' to 'com.sample.demo'

生成 Mac 工程

创建好了,我们想要在 Mac 平台下进行开发,还需要使用 cmake 生成 Xcode 的工程。之前的 3.x 的版本是自带的,4.0 不知道为啥就不带了。

没安装 cmake 的可以使用 brew install cmake 进行安装。

1
2
cd proj.ios_mac
cmake .. -GXcode

执行完了之后就能看到 demo.xcodeproj ,双击就可以用 Xcode 进行开发了。

生成 iOS 工程

1
2
cd proj.ios_mac
cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos

如果你要在模拟器上使用需要把 CMAKE_OSX_SYSROOT 改为 iphonesimulator

1
2
mkdir build && cd build
cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator

碰到错误

如果你进行编译,报如下错误

1
2
clang: error: no such file or directory: '/usr/lib/libz.dylib'
clang: error: no such file or directory: '/usr/lib/libiconv.dylib'

可以在 build settings 里找 linking ,把 /usr/lib/libz.dylib/usr/lib/libiconv.dylib 换成

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libz.dylib

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libiconv.dylib

总结

Cocos2d 许多年不更新了,使用新版的 Xcode 会碰到一些问题。在 3.x 的版本上还需要改源码。

并且 Cocos2d 不支持 Python3 ,还是有点落后了。

参考