Cocos2d-x Tutorial 之 如何绑定 C++ 类到 Lua
2015-04-15 18:35
274 查看
转载地址:http://geekgaoyang.herokuapp.com/blog/2015/02/11/cocos2d-x-tutorial-of-binding-c-plus-plus-class-to-lua-usage/本篇博文主要记录一下 C++ 如何绑定一个类到 Lua
1、Python 使用brew包管理器安装 Python
2、Python 依赖包
3、ndk-r9b-x86_64 修改 .bash_profile 设置环境变量
4、进入到 cocos2d-x/tools/tolua
以上执行成功说明 lua 绑定所需要的环境配置 ok
1、编写一个简单的 C++ 类Custom.h
Custom.cpp
2、修改 cocos2dx_custom.ini拷贝一份 cocos2dx.ini 重命名为 cocos2dx_custom.ini
cocos2dx_custom.ini
3、修改 genbindings_custom.py拷贝一份 genbindings.py 重命名为 genbindings_custom.py
genbindings_custom.py
4、开始绑定打开终端,执行绑定脚本,注意查看终端有没有失败的信息!!!
执行
如果以上执行成功,在 Classes 目录下会生成一个 auto 文件夹,里面是生成的绑定文件
1、增加绑定代码到 Xcode 并在 AppDelegate 中添加注册代码AppDelegate.cpp
2、在 Lua 中调用main.lua
3、编译运行查看控制台输出控制台
一、先决条件
1、Python 使用brew包管理器安装 Python1 | brew install python |
12 | sudo easy_install pip sudo pip install PyYAML sudo pip install Cheetah |
1 | export NDK_ROOT=/path/to/android-ndk-r9b |
1 | ./genbindings.py |
二、开始绑定自定义类
1、编写一个简单的 C++ 类Custom.h12 | #ifndef __MyLuaGame__Custom__ #define __MyLuaGame__Custom__ #include "cocos2d.h" class Custom : cocos2d::Ref{ public: CREATE_FUNC(Custom) virtual bool init(); void test(); }; #endif /* defined(__MyLuaGame__Custom__) */ |
12 | #include "Custom.h" #include <stdio.h> bool Custom::init() { return true; } void Custom::test() { printf("hello world\n"); } |
cocos2dx_custom.ini
12 | 搜索: [cocos2d-x] 替换: [cocos2dx_custom] 搜索: prefix = cocos2dx 替换: prefix = cocos2dx_custom 搜索: target_namespace = cc 替换: target_namespace = 搜索: headers = ... 替换: headers = %(cocosdir)s/../runtime-src/Classes/Custom.h 搜索: classes = ... 替换: classes = Custom 搜索: skip = ... 替换: skip = 搜索: rename_functions = ... 替换: rename_functions = 搜索: rename_classes = ... 替换: rename_classes = |
genbindings_custom.py
12 | 搜索: output_dir = '%s/cocos/scripting/lua-bindings/auto' % project_root 替换: output_dir = '%s/../runtime-src/Classes/auto' % project_root 搜索: cmd_args = ... 替换: cmd_args = {'cocos2dx_custom.ini' : ('cocos2dx_custom', 'lua_cocos2dx_custom_auto')} |
执行
1 | ./genbindings_custom.py |
三、 Lua 中调用 C++ 类
1、增加绑定代码到 Xcode 并在 AppDelegate 中添加注册代码AppDelegate.cpp12 | ... #include "lua_cocos2dx_custom_auto.hpp" ... bool AppDelegate::applicationDidFinishLaunching() { ... register_all_cocos2dx_custom(L); ... } |
12 | local custom = Custom:create() custom:test() |
1 | hello world |
相关文章推荐
- 【Quick-COCOS2D-X 3.3 如何绑定自定义类至Lua之四】使用绑定C++至Lua的自定义类
- Cocos2d-x 3.6(Lua):Cocos如何绑定Lua自定义C++
- cocos2d-Lua与c++交互,lua如何绑定C++类。
- 如何使用cocos的自动绑定工具实现lua调用c++的类
- 我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类
- 【Quick-COCOS2D-X 3.3 如何绑定自定义类至Lua之二】新建项目中配制环境
- cocos2d-x 2.2.0 如何在lua中注册回调函数给C++
- 【Cocos2d-x】绑定C++自定义类到Lua
- (转载)我所理解Cocos2d-x 3.6(Lua):Cocos如何绑定Lua自定义类
- 我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类
- 关于cocos2dx如何绑定c++的静态方法和类给lua调用
- cocos2d-x_lua中tolua++绑定c++分享
- cocos2d-lua里 如何绑定按钮button的点击事件click
- Cocos2d-x3.0如何绑定调用lua回调函数
- cocos2d-x从c++文件生成lua绑定文件及lua脚本文件
- cocos2d-x C++绑定lua tolua++使用
- Cocos2d-x开发系列 交叉开发模式五 绑定C++对象到Lua
- cocos2d lua绑定感悟---像cc.Sprite,cc.Director这些是如何识别的
- 如何在cocos2d c++代码中调用lua以及探究
- 【Quick-COCOS2D-X 3.3 如何绑定自定义类至Lua之三】动手绑定自定义类至Lua