Cocos2d-iPhone调用lua
@[Cocos2d-iPhone|lua|wax|libLua.a]
- 安装cocos2d-iPhone模板到Xcode下,这个这里就不说了。
- 我新建了一个cocos2d项目,名称为Cocos2d-iPhoneLuaTest,在Xcode界面下的左侧选中项目,然后在右边界面点击下方的”AddTarget”。
- 在弹出的对话框中创建静态库,如下图所示
- 然后点击下一步(next),在对话框中填写加入的静态库名字,确定。
- 在Xcode界面下的左侧选中项目,右键加入外部文件
- 在弹出的对话框中选择解压好的lua,我用的是lua-5.2.2,注意要将其加到Lua目标中
- 如下图所示,要将静态库libLua.a加入到链接库中
- 准备工作完毕。
简单的编码实现
- 将HelloWorldLayer.m文件后缀改成mm,支持Objective-C和C++混编。
在HelloWorldLayer.mm文件中加入如下代码
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }; int runlua(void) { lua_State *L = luaL_newstate(); luaL_openlibs(L); printf("\nLua done!"); lua_close(L); return 0; }
在HelloWorldLayer.mm的init方法里面,添加对runLua方法的调用
-(id) init { if( (self=[super init]) ) { CCLOG(@"HelloWorldLayer init."); runlua(); } return self; }
- ok,run,日志里”Lua done!”
最后说下,cocos2d-iPhone没有内置lua,不过有个开源的lua实现框架wax,《愤怒的小鸟》正是采用了wax。cocos2d-x集成了lua,而且最新的版本也集成了jsbinding,十分强大,有兴趣的可以自行查找研究学习。