Cocos2d-iPhone调用lua

Cocos2d-iPhone调用lua

@[Cocos2d-iPhone|lua|wax|libLua.a]

  • 安装cocos2d-iPhone模板到Xcode下,这个这里就不说了。
  • 我新建了一个cocos2d项目,名称为Cocos2d-iPhoneLuaTest,在Xcode界面下的左侧选中项目,然后在右边界面点击下方的”AddTarget”。
    Alt text
  • 在弹出的对话框中创建静态库,如下图所示
    Alt text
  • 然后点击下一步(next),在对话框中填写加入的静态库名字,确定。
  • 在Xcode界面下的左侧选中项目,右键加入外部文件
  • 在弹出的对话框中选择解压好的lua,我用的是lua-5.2.2,注意要将其加到Lua目标中
    Alt text
  • 如下图所示,要将静态库libLua.a加入到链接库中
    Alt text
  • 准备工作完毕。

简单的编码实现

  • 将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,十分强大,有兴趣的可以自行查找研究学习。

坚持原创技术分享,您的支持将鼓励我继续创作!