在cocos2d-x+lua开发中,实现c++代码在lua脚本中调用是必不可少的(也就是所谓绑定c++到lua)。实现C++绑定有两种方式:1.通过.pkg文件2.通过直接写代码(.h/.cpp)文件绑定。
这次主要介绍通过自己写代码实现。cocos2d引擎本身是通过代码方式来实现lua绑定的。主要代码见:LuaCocos2d.h,LuaCocos2d.cpp两个文件,绑定入口见CCLuaEngine::init函数的tolua_Cocos2d_open(m_state);这一行。
为了简单说明绑定过程,贴出我自己测试的代码如下:
class TestLuaInterface
{
public:
static void staticPrint(constchar* msg);//需要在lua中调用该函数
};
//需定义如下函数
int tolua_TestLuaInterface_staticPrint(lua_State* L)
{