前言
因公司业务需要,需要将游戏引擎模块植入到原生的iOS项目中。通过原生入口拉起Cocos2d-x开发的游戏模块。
实现原生项目和游戏引擎模块的互通功能。
Cocos2d-x已经不再更新维护,所有网上关于此类集成版本参差不齐全。坑贴很多,有参考价值的文章也集中在2019~2022年。为了避免后边的同行重复踏入坑中,更为了记录此次成功集成的经验特此记录。(耗时3天的经验所得!)
特别说明:游戏引擎采用了Lua语言,非Lua语言仅供参考!
前置准备
本文所用各版本信息:
Xcode15.2 + swift5 版本
cocos2d-x v4.0 中文官方网站
cocos2d-x Github地址
Python2.7.18下载地址
注:为了更好的提供参考Xcode特意升级为最新版本
备注说明:
cocos2d-x的作用是为了生成一个游戏空包,方便集成测试。因为iOS端的集成需要游戏模块的代码,为了代码安全起见在游戏没有完成开发之前我们是无法得到游戏引擎导出的代码。所以我们在未提供的游戏模块的情况下,采用此方案熟悉集成流程使用。
如果已经得到游戏模块,可跳过。
cocos2d-x引擎
安装教程
依次执行如下命令
shell
$ cd cocos2d-x
$ python setup.py
$ cocos new MyGameo -p com.yourcustom.mygame -l lua -d NEW_PROJECTS_DIR
$ cd NEW_PROJECTS_DIR/MyGame
$ cocos run --proj-dir .. -p ios
趟坑说明:
1.一定要不使用Mac自带的python3
,将无法执行命令。
2.python3的下载版本一定要在2.7.x - 找最新版本否则将无法安装。建议直接使用上文中的下载地址,M1芯片亲测可用!可安装!
Get一个游戏空包
1.创建一个空包,Xcode可执行的文件
在顺利执行完cocos new MyGameo -p com.yourcustom.mygame -l lua -d NEW_PROJECTS_DIR
的命令后,控制台将进入下面的状态:
预计执行时间差不多3~5分钟
,需要耐心的等待。
2.错误解决方案
2.1 彩蛋【1】
执行命令出错,返回值:127
不慌!要冷静!问题不大!(需要装个cmake)
brew install cmake
2.2 彩蛋【2】
执行命令出错,返回值:65
不慌!要冷静!问题不大!(实则慌得一批)
先检查是否正常生成了IOS APP项目,尝试用Xcode打开编译一下。
将Base SDK
修改为 iOS。
将框中的内容注释,修改为如下内容:
rust
"/usr/lib/libz.dylib" -> "-lz"
"/usr/lib/libiconv.dylib" -> "-liconv"
2.3 彩蛋【3】
模拟器运行lua_open() Thread 1: EXC_BAD_ACCESS
,这个原因是因为cocos2d-x中的其中的个lib库已经是6年前的,需要将其替换掉。 如果是真机可以忽略,到这一步已经可以直接编译了
在自己的项目中替换掉如下路径的 libluajit.a 为Github最新版本
运行效果图
结尾
为了避免一篇文章过长让人读起来感觉太过于麻烦。同时影响阅读体验,所以将集成coco2d-x流程的文章将另写一篇。