lua使用cocos2d-x中的函数
2013-04-27 17:45
295 查看
在lua中调用cocos2d-x函数 需在lua中注册声明 才可在项目中调用Lua文件避免出现nil
下面是我的实例说明,我要加的是CCControlSlider,其实很简单,首先我们找到Luacocos2d.cpp,
仔细看看,里面已经有很多类都已经注册声明,我们何不就仿照他们已有的,一一添加注册声明。
在Luacocos2d.cpp中的 tolua_reg_types函数中加入:
在Luacocos2d.cpp中的 tolua_Cocos2d_open函数中打开我们的CCControlSlider并声明CCControlSlider类中我们要用到的函数create,
要加CCControlSlider类其他的函数也是此法,我这里只举其中一个create函数:
好了,create函数的声明就写好了,记得下面要添加 “create” 对应的tolua_Cocos2d_CCControlSlider_create00函数实现,就在Luacocos2d.cpp这个类中添加咯:
这样就O啦,我们可以在Lua中用到cocos2d-x下的CCControlSlider类中的create,只是create哦,如果你还想用到CCControlSlider类中更多的函数,就按上面的去做就OK了。
下面是我的实例说明,我要加的是CCControlSlider,其实很简单,首先我们找到Luacocos2d.cpp,
仔细看看,里面已经有很多类都已经注册声明,我们何不就仿照他们已有的,一一添加注册声明。
在Luacocos2d.cpp中的 tolua_reg_types函数中加入:
tolua_usertype(tolua_S,"CCControlSlider");
在Luacocos2d.cpp中的 tolua_Cocos2d_open函数中打开我们的CCControlSlider并声明CCControlSlider类中我们要用到的函数create,
要加CCControlSlider类其他的函数也是此法,我这里只举其中一个create函数:
tolua_cclass(tolua_S,"CCControlSlider","CCControlSlider","",NULL); tolua_beginmodule(tolua_S,"CCControlSlider");
tolua_function(tolua_S,"create",tolua_Cocos2d_CCControlSlider_create00);
tolua_endmodule(tolua_S);
好了,create函数的声明就写好了,记得下面要添加 “create” 对应的tolua_Cocos2d_CCControlSlider_create00函数实现,就在Luacocos2d.cpp这个类中添加咯:
/* method: create of class CCControlSlider */ #ifndef TOLUA_DISABLE_tolua_Cocos2d_CCControlSlider_create00 static int tolua_Cocos2d_CCControlSlider_create00(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if ( !tolua_isusertable(tolua_S,1,"CCControlSlider",0,&tolua_err) || !tolua_isstring(tolua_S,2,0,&tolua_err) || !tolua_isstring(tolua_S,3,0,&tolua_err) || !tolua_isstring(tolua_S,4,0,&tolua_err) || !tolua_isnoobj(tolua_S,5,&tolua_err) ) goto tolua_lerror; else #endif { const char* normalSlider = ((const char*) tolua_tostring(tolua_S,2,0)); const char* selectedSlider = ((const char*) tolua_tostring(tolua_S,3,0)); const char* disabledSlider = ((const char*) tolua_tostring(tolua_S,4,0)); { CCControlSlider* tolua_ret = (CCControlSlider*) CCControlSlider::create(normalSlider,selectedSlider,disabledSlider); int nID = (tolua_ret) ? (int)tolua_ret->m_uID : -1; int* pLuaID = (tolua_ret) ? &tolua_ret->m_nLuaID : NULL; toluafix_pushusertype_ccobject(tolua_S, nID, pLuaID, (void*)tolua_ret,"CCControlSlider"); } } return 1; #ifndef TOLUA_RELEASE tolua_lerror: tolua_error(tolua_S,"#ferror in function 'create'.",&tolua_err); return 0; #endif } #endif //#ifndef TOLUA_DISABLE
这样就O啦,我们可以在Lua中用到cocos2d-x下的CCControlSlider类中的create,只是create哦,如果你还想用到CCControlSlider类中更多的函数,就按上面的去做就OK了。
相关文章推荐
- lua使用cocos2d-x中的函数
- 【COCOS2DX-LUA 脚本开发之六】利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- cocos2d-x + Lua下场景不能使用setOnEnterCallback(func)等函数来设置回调的解决办法
- 【COCOS2DX-LUA 脚本开发之六】利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- 【COCOS2DX-LUA 脚本开发之六】利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- 利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- cocos2d-x中使用tolua++导出函数中传递字节流给lua使用的问题
- 【木头Cocos2d-x 031】Lua篇(第06章):Lua调用C++的函数
- Cocos2d-x教程 Lua脚本(1) 如何在Cocos2d-x中使用Lua脚本
- Cocos2d-x Lua 读取Csv文件,更方便的使用数据
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- cocos2d-x lua 中使用protobuf并对http进行处理
- 【Cocos2d-x lua篇006】Lua调用C++的函数
- (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(7): 其他table方法
- Cocos2d-x教程 Lua脚本(1) 如何在Cocos2d-x中使用Lua脚本
- Cocos2d-x 脚本语言Lua使用
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 在 quick-cocos2d-x 中导出 CCFileUtils::getFileData 给Lua使用
- Cocos2d-x Lua中实例:帧动画使用
- cocos2d-2.1rc0-x-2.1.3使用lua