前段时间配合其他部门把cocostudio做的动画拿到ios原生引用中播放,把cocos2d-x做成静态库并保留了一个头文件给ios那边调用,可以实现ios调用cocos2d-x,最近又要实现cocos2d-lua版本的,思路差不多,不过最后是调用的脚本,可以把脚本直接看做资源,坑也有几看踩踩填填就好啦。
我用的是cocos2d-x 3.12版本,如其他版本遇到不同的问题,也可以及时反馈,大家一起解决 ,共同进步哈。
1、生成libluacocos2d iOS.a 静态库,步骤如下
(1)、如图"001"打开cocos2d工程目录下的cocos2d_lua_bindings.xcodeproj
(2)、如图"002"这里选择libluacocos2d iOS ,然后点击Edit Scheme 选择release模式编译
我用的是cocos2d-x 3.12版本,如其他版本遇到不同的问题,也可以及时反馈,大家一起解决 ,共同进步哈。
1、生成libluacocos2d iOS.a 静态库,步骤如下
(1)、如图"001"打开cocos2d工程目录下的cocos2d_lua_bindings.xcodeproj
(2)、如图"002"这里选择libluacocos2d iOS ,然后点击Edit Scheme 选择release模式编译
(3)
、不出意外的话,编译成功后,如图位置会出现
libluacocos2d iOS.a
文件,选中它,在如图
"003"
最右边的位置会看到文件位置,然后打开
Finder ,
按下
command + shift + G
进入文件搜索,如图
"0031"
把刚刚那个文件地址粘贴进去,找到
libluacocos2d iOS.a
文件如图
"0032"
,拷贝到如图所示工程目录下的
cocos2d-x/build
目录下如图
"0033"
。
2
、生成
libsimulator.a
静态库,步骤如下
(1)
、如图
"2(1)"
打开
cocos2d
工程目录下的
libsimulator.xcodeproj
(2)、同(1)步骤生成libsimulator.a静态库,也拷贝到工程目录下的cocos2d-x/build目录下
3
、生成
libcocos2d.a
静态库,步骤如下
(1)
如图
"3(1)"
把
Classes
文件拷贝到工程目录下的
cocos2d-x/build
目录下,打开
cocos2d_libs.xcodeproj
(2)
如图
"3(2)" "3(21)"
添加
Classes
到工程中
,
这里按图示勾选
(3)
同样的方式把之前生成的
libluacocos2d iOS.a
,
libsimulator.a
也添加进来
(4)
如
1(2)
的步骤选择
release
模式编译
(5)
如图
"3(5)"
选中
PROJECT
后在
User Header Search Paths
里添加相应头文件目录,不然会出现各种找不到头文件的错误。
(6)
如图
"3(6)"
选中
TARGETS
后在
User Header Search Paths
里添加相应头文件目录。
(7)
如图
"3(7)"
把
.m .cpp
文件都拖到
Compile Sources
里面
(8)
如图
"3(8)"
把
animationManager.h
文件拖到
Header
的
public
中,其他头文件拖到
Project
里
(9)
执行
Run
编译,不出意外的话会生成一个如图
"3(9)"libcocos2d iOS.a
文件
4
、
(1)
如图
"4(1)"
拷贝静态库
libcocos2d iOS.a
和头文件
AnimationManager.h
到
ios
项目工程根目录下
(2)
并添加到项目中如图
"4(2)".
(3)
如图
"4(3)"
根据
cocos2d
工程给
ios
工程添加相应的库
(4)
把cocos2d-lua工程下的Resources整个拷贝到ios工程根目录下,以group的方式如图"4(4)"导入Resources,删除掉里面的文件,
再把里面的文件包括src和res等以reference的方式添加进来如图"4(42)",使其文件夹变成蓝色(重点)如图"4(43)"
(5)
如图
"4(5)"
在需要调用
cocos2d
的类中导入头文件
AnimationManager.h,
并调用相应接口如图
"4(51)"
;
(6)
如图
"4(6)"
修改当前调用的类的后缀名为
.mm
(7)
如图
"4(7)"
注意修改模式为
release
(8)
在
other linker flags
中添加
-pagezero_size 10000 -image_base 100000000
参考
https://segmentfault.com/a/1190000005021419
(9)
运行在这里会调用
cocos2d
接口