由于项目使用Lua开发,最近在学习lua,所以就准备在vs下搭建lua的开发环境。项目使用LuaBridge为Lua绑定C++对象,这篇文章就把LuaBridge用法一起写进来了,下面开始正文。。。
步骤
1.生成Lua静态库(非cocos2dx项目下可以参考这篇文章http://www.fusijie.com/blog/2014/08/31/how-to-complie-cpp-with-lua-in-the-vs/)
(1)首先去Lua官网下载Lua,最新的应该是Lua 5.2.3 下载地址。下载下来之后,解压,放在一边待用。。。也可以去cocos2dx的源码里面获取,路径如下 E:\cocos2d-x-3.1.1\external\lua\lua
(2)创建cocos2dx项目,右击解决方案添加新项目,选择win32控制台程序,确定,选择静态库,勾去预编译头,OK。。。如下图:
(3).到liaLua目录下新建文件夹LuaSrc,把下载的lua代码拷贝进去。。。进入项目添加到libLua下,在配置属性->c/c++/预处理器定义下添加_CRT_SECURE_NO_WARNINGS,把输出目录设置成和其他静态库一样,生成,在LuaTest\proj.win32\Debug.win32目录下就有了一个libLua.lib静态库文件,至此,我们已经成功生成Lua静态库。
2.添加LuaBridge到项目中,并注册对象
ps:因为LuaBridge需要使用Lua,所以要给项目附加依赖项和附加包含目录,分别为:libLua.lib、$(EngineRoot)libLua
(1).先下载LuaBridge源文件,LuaBridge文件 进入项目目录,添加文件夹LuaBridge,然后把下载好的文件添加进文件夹中。进入项目,添加文件夹LuaBridge,添加现有项,把LuaBridge中的文件添加到项目中,在代码中添加#include "LuaBridge/LuaBridge.h"头文件,测试OK,下面开始注册c++对象给lua使用。
(2).注册2个类测试使用UIManage和Widget类。先说如何注册Widget,需要添加几个库libGUI,libExtension,libCocostudio,自行添加。代码如下:
1 bool HelloWorld::init() 2 { 3 ////////////////////////////// 4 // 1. super init first 5 if (!Layer::init()) 6 { 7 return false; 8 } 9 10 m_luastate = luaL_newstate(); 11 luaL_openlibs(m_luastate); 12 initScript(); 13 14 15 return true; 16 } 17 18 void HelloWorld::initScript() 19 { 20 getGlobalNamespace(m_luastate) 21 22 .beginNamespace("game") 23 24 .beginClass<Widget>("Widget") 25 .addFunction("getChildByTag",&Widget::getChildByTag) 26 .endClass() 27 28 .endNamespace() 29 30 ; 31 }
OK,环境搭建和c++类注册介绍到这里,下篇开始写2个类,完成按钮事件注册。
请发表评论