quick lua-binding使用详解
来源:互联网 发布:pkpm软件下载 编辑:程序博客网 时间:2024/06/02 02:20
1 创建c++文件 MyClass.cpp MyClass.h 于 frameworks/runtime-src/Classes/tolua目录下
MyClass.cpp
#include "MyClass.h"int MyClass::foo(int i){ return i + 100;}
MyClass.h
#include "cocos2d.h"using namespace cocos2d;class MyClass : public Ref{public: MyClass() {}; ~MyClass() {}; bool init() { return true; }; CREATE_FUNC(MyClass); int foo(int i);};
2 编写.ini文件。在frameworks/cocos2d-x/tools/tolua/目录下能看到genbindings.py脚本和一大堆.ini文件,这些就是bindings-generator的实际执行环境了。随便找一个内容比较少的.ini文件,复制一份,重新命名为MyClass.ini。大部分内容都可以凑合不需要改,这里仅列出必须要改的重要部分:
[MyClass]prefix = MyClasstarget_namespace = myheaders = %(cocosdir)s/../runtime-src/Classes/tolua/MyClass.hclasses = MyClass
3 修改genbindings.py文件 129行附近,将MyClass.ini文件加进去:
frameworks/cocos2d-x/tools/tolua/genbindings.py
cmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'lua_cocos2dx_auto'), \ 'MyClass.ini' : ('MyClass', 'lua_MyClass_auto'), \ ...
4 在控制台进入frameworks/cocos2d-x/tools/tolua/ 目录 ,运行genbindings.py
会在framework/cocos2d-x/cocos/scripting\lua-bindings\auto 目录下生成lua_MyClass_auto.cpp和lua_MyClass_auto.hpp两个文件将其复制到Classes/tolua目录下
5 修改AppDelegate.cpp
#include "../tolua/lua_MyClass_auto.hpp"applicationDidFinishLaunching()函数中添加 LuaStack* stack1 = engine->getLuaStack(); register_all_MyClass(stack1->getLuaState());
6测试 在main.lua文件中
local test = my.MyClass:create()print("lua bind: " .. test:foo(99)
已解决出现的问题
1.python缺少yaml库Cheetah库 安装easy_install 安装相应的库
2.python :ImportError …MAXREPEAT 提示
修改Python27\Lib下src_constants.py如下
MAGIC = 20031017try: from _sre import MAXREPEATexcept ImportError: import _sre _sre.MAXREPEAT = 65535# SRE standard exception (access as sre.error)# should this really be here?class error(Exception): pass
这样使用vs2012可以启动win程序但是如果使用Cocos Code Ide 的话要修改Android.mk文件将MyClass.cpp、lua_MyClass_auto.cpp添加到LOCAL_SRC_FILES :下
参考:http://segmentfault.com/blog/hongliang/1190000000631630
- quick lua-binding使用详解
- quick lua-binding使用详解
- lua使用spSkeletonData创建SkeletonAnimation&lua-binding
- quick lua中使用SocketTCP
- quick-x lua sprite使用
- Quick-Lua TabelView的简单使用
- 使用vs2012调试quick-lua代码
- quick-lua中使用本地数据存储
- cocos2dx lua自定义lua-binding
- quick3.6 lua-binding
- quick-cocos2d-x使用luajit编译lua脚本
- quick-cocos2d-x 导出 C/C++ API 给 Lua 使用
- quick cocos2dx-Lua中的自定义事件的使用
- Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- quick-cocos2dx cocos2dx.lua
- quick lua加密
- quick-lua攻击按键
- lua QUICK-COCOS2D-X
- pat1061
- 两种高性能 I/O 设计模式 Reactor 和 Proactor
- leetcode Longest Substring Without Repeating Characters
- How to install SVN server with USVN, Apache, mod_dav_svn on CentOS 6
- 删除之后在原页面显示删除
- quick lua-binding使用详解
- HTTP协议(二):header标头说明
- 适配器模式
- TCP协议和socket API 学习笔记
- 如何成为一个牛逼的C/C++程序员?
- 高性能I/O设计模式概述
- UVA572 - Oil Deposits
- 判断已经输入多少字符,还能输入多少字符
- JD所用