HappyCoding:] ChildhoodAndy

思维世界的发展,在某种意义上说,就是对惊奇的不断摆脱。——爱因斯坦

Cocos2d-iPhone调用lua

| Comments

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

Comments

comments powered by Disqus