iOS原生集成cocoscreator


title: iOS原生集成cocoscreator
date: 2020-09-21 12:00:25
tags: 游戏开发

游戏项目使用cocoscreator 2.4.0版本,发布iOS工程后集成到iOS原生工程,中途发现v8引擎在一个进程中只能初始化一次,导致退出游戏销毁引擎实例并释放资源后无法再次打开游戏,遂采用单例模式,每次退出游戏时只跳转到空场景然后释放资源并停止游戏主循环并不销毁引擎实例(注意,这里一定要跳转到空场景再释放资源,如果在游戏场景释放可能不及时,导致返回app时内存没有回落),这样做的好处是下次进入游戏比较快而且稳定,坏处就是退出游戏返回app时要多占用90M左右的内存。

cocos的iOS工程其实就是创建了一个RootViewController,并设置view为CCEAGLView,然后把这个RootViewController设置给window进行加载显示,同时初始化引擎并开始运行游戏。我们这里要做的就是创建一个GameViewController来替换cocos的RootViewController, 然后在原生iOS工程中通过按钮或者其他操作来加载显示我们的GameViewController并启动引擎,当关闭游戏时,我们移除GameViewController并停止引擎主循环(注意,不要销毁), 下次进入游戏时再次加载显示GameViewController并重启游戏即可。

一、导入cocos 工程相关文件到原生iOS工程

  1. 在原生iOS工程文件夹里新建一个cocos文件夹,并把cocos导出的iOS工程里的assetssrcmain.jsjsb-adapterproject.jsonframeworks拷贝进去。

  2. 打开iOS原生工程,工程根目录导入cocos下的文件和文件夹,这里要*注意文件夹的黄色(group)和蓝色(fold references)*区别。以蓝色fold references导入assets、cocos2d_libs.xcodeproj,以黄色group模式导入ios、Classes文件夹,新建一个名为Resources的group,并以fold references模式导入main.js、project.json、src、jsb-adapter到其中。完成后到目录结构如下:

在这里插入图片描述

  1. 把cocos导出的iOS工程里所用到的frameworks全部导入到原生iOS工程

  2. 为原生iOS工程的TARGETS添加Dependences(Build Phase/Dependencies):libcocos2d iOS(cocos2d_libs)

  3. 参考cocos导出的iOS工程为原生工程的PROJECT添加以下头文件搜索路径(Build Settings/Search Paths/User Header Search Paths), ( P R O J E C T D I R ) 为 相 对 工 程 根 目 录 路 径 , (PROJECT_DIR)为相对工程根目录路径, (PROJECT

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值