cocos2dx luabind(绑定自定义类)
之前并没有接触到Lua,尤其现在cocos2dx 渐渐的以Lua和JS开发较多,所以最近就学着对Lua绑定自定义类,中间也是碰到很多问题,记录下分享出来,后面碰到还是可以解决的。
上面的所需的系统环境可以在: /Fun/frameworks/cocos2d-x/tools/tolua/README.mdown
第一个Fun这个是项目的名称,在这个README文件中提出了所需的环境。不过这个里面是一个坑啊!!!他在这里面推荐使用的NDK R10C或者以上版本,当你使用这个版本的话编译绑定文件,会编译出错。WTF!!! # genbindings.py
# This script is used to generate luabinding glue codes.
# Android ndk version must be ndk-r9b.
这是一个多么 * * 的问题啊 当你配置完成所需环境以后,然后就可以编写需要提供给Lua使用的C++文件了。 /Fun/frameworks/runtime-src/Classes/
自定义类的结构 #ifndef AnyLua_hpp
#define AnyLua_hpp
#include "cocos2d.h"
using namespace cocos2d;
class AnyLua
{
public:
AnyLua(){}
~AnyLua(){}
bool init();
std::string getValue();
};
#endif /* AnyLua_hpp */
#include "AnyLua.hpp"
bool AnyLua::init()
{
return true;
}
std::string AnyLua::getValue()
{
return "AnyLua::getValue = 121";
}
接下来也就是一个重要的环节了,修改INI文件。INI文件所在位置: /LuaClass/frameworks/cocos2d-x/tools/tolua/
在这个文件列表里面找一个复制重命名为AnyLua.ini,修改文件中部分位置 后面就是修改genbindings.py文件,我直接在元文件中进行的修改。 cmd_args = {'AnyImageView.ini' : ('AnyImageView','lua_AnyImageView_auto')}
然后在通过终端进入到当前目录: /Fun/frameworks/cocos2d-x/tools/tolua
执行如下命令行: python genbindings.py
如果所需环境安装正常,你就可以看到 --------------------------------- Generating lua bindings succeeds. ---------------------------------
当然上面这句是在终端里面显示的,CSDN这边上传图片出现了问题,所以就直接放了一段文字。 /Fun/frameworks/cocos2d-x/cocos/scripting/lua-bindings/auto/
这个就是输出路径了,同样我们可以在genbindings.py里面修改输出路径 由于在Xcode中添加Class文件要选择 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |