前语

因公司业务需求,需求将游戏引擎模块植入到原生的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引擎

装置教程

顺次履行如下指令

$ 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芯片亲测可用!可装置!

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

Get一个游戏空包

1.创立一个空包,Xcode可履行的文件

在顺畅履行完cocos new MyGameo -p com.yourcustom.mygame -l lua -d NEW_PROJECTS_DIR的指令后,控制台将进入下面的状态:

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

估计履行时间差不多3~5分钟,需求耐心的等待。

2.错误解决计划

2.1 彩蛋【1】

履行指令犯错,返回值:127

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

不慌!要镇定!问题不大!(需求装个cmake)

brew install cmake
2.2 彩蛋【2】

履行指令犯错,返回值:65

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

不慌!要镇定!问题不大!(实则慌得一批)

先检查是否正常生成了IOS APP项目,尝试用Xcode翻开编译一下。

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

Base SDK修改为 iOS。

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

将框中的内容注释,修改为如下内容:

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

"/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最新版别

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

运转效果图

iOS-Swift项目嵌入Cocos2d-x游戏开发(一)

结尾

为了防止一篇文章过长让人读起来感觉太过于麻烦。一起影响阅览体验,所以将集成coco2d-x流程的文章将另写一篇。