请尊重原创 转载有名源:http://blog.csdn.net/wushao126/article/details/46660375

首先去官网下载最新的quick。配置好环境。创建一个luaproject,命令 cocos new XXX(项目名称) -p com.xxxx.xxxx(包名) -l lua -d xxx(新建project保存路径)

project创建后,找到project文件夹下的frameworks\runtime-src\Classes,创建一个c++类。我创建的类是

文件名称:LuaBindingTest.h

#pragma once
class LuaBindingTest
{
public:
LuaBindingTest();
~LuaBindingTest(); void add(long a,long b);
void sub(int a, int b);
};

文件名称:LuaBindingTest.cpp

#include "LuaBindingTest.h"
#include "cocos2d.h"
USING_NS_CC; LuaBindingTest::LuaBindingTest()
{
} LuaBindingTest::~LuaBindingTest()
{
} void LuaBindingTest::sub(int a, int b)
{
CCLOG("a - b = %d", a - b);
} void LuaBindingTest::add(long a, long b)
{
CCLOG("a + b = %ld", a + b);
}

之后在project目录下的frameworks\cocos2d-x\tools\tolua目录中找到genbindings.py目录。备份一份,改名genbindings_binding_test.py。打开此文件,须要改动内容,定位大约在130行之后,找到内容类似

        tolua_root = '%s/tools/tolua' % project_root
output_dir = '%s/../runtime-src/Classes/auto' % project_root cmd_args = {'myclass.ini' : ('myclass', 'lua_myclass_auto'), \
'cocos2dx_extension.ini' : ('cocos2dx_extension', 'lua_cocos2dx_extension_auto'), \
'cocos2dx_ui.ini' : ('cocos2dx_ui', 'lua_cocos2dx_ui_auto'), \
'cocos2dx_studio.ini' : ('cocos2dx_studio', 'lua_cocos2dx_studio_auto'), \
'cocos2dx_spine.ini' : ('cocos2dx_spine', 'lua_cocos2dx_spine_auto'), \
'cocos2dx_physics.ini' : ('cocos2dx_physics', 'lua_cocos2dx_physics_auto'), \
'cocos2dx_experimental_video.ini' : ('cocos2dx_experimental_video', 'lua_cocos2dx_experimental_video_auto'), \
'cocos2dx_experimental.ini' : ('cocos2dx_experimental', 'lua_cocos2dx_experimental_auto'), \
'cocos2dx_controller.ini' : ('cocos2dx_controller', 'lua_cocos2dx_controller_auto'), \
'cocos2dx_cocosbuilder.ini': ('cocos2dx_cocosbuilder', 'lua_cocos2dx_cocosbuilder_auto'), \
'cocos2dx_cocosdenshion.ini': ('cocos2dx_cocosdenshion', 'lua_cocos2dx_cocosdenshion_auto'), \
'cocos2dx_3d.ini': ('cocos2dx_3d', 'lua_cocos2dx_3d_auto'), \
'cocos2dx_audioengine.ini': ('cocos2dx_audioengine', 'lua_cocos2dx_audioengine_auto'), \
'cocos2dx_csloader.ini' : ('cocos2dx_csloader', 'lua_cocos2dx_csloader_auto'), \
}

tolua_root 就是ini文件所在文件夹,过会我们就要在这个文件夹下创建我们的ini文件。

output_dir 是我们要生成的目标文件所在的文件文件夹,我把这个改动在classes文件夹下auto

这是我改动后的文件内容

        tolua_root = '%s/tools/tolua' % project_root
output_dir = '%s/../runtime-src/Classes/auto' % project_root cmd_args = {'myclass.ini' : ('myclass', 'lua_myclass_auto'), \
}

myclass.ini就是接下来要创建的ini文件

随便复制一个ini文件,改名为myclass.ini,打开文件,改动几个參数就可以

prefix = myclass

target_namespace =   (空 表示没有)

headers = %(cocosdir)s/../runtime-src/Classes/LuaBindingTest.h  (须要绑定c++类的头文件路径)

classes = LuaBindingTest (类名)

skip = (对lua隐藏的接口)

改动好了之后保存文件。

接着要配置环境

找到此文件夹下的README.mdown文件,打开

依照上面安装好,做好,关于cheetah这个,直接复制文件夹。别进入文件夹内把全部文件散着放到C:\Python27\Lib\site-packages

ndk r9b版本号以上就好了

环境配置好后

运行 python genbindings_binding_test.py命令

你会在你的output_out 路径上看到了生成的文件,api目录,一个hpp,一个cpp。假设咩生成。就要检查下是不是出错环节。

注冊

打开AppDelegate.cpp。增加hpp头文件

AppDelegate::applicationDidFinishLaunching方法中。在lua_module_register(L);下,复制刚才生成的hpp中register_all_myclass(L);

这就注冊好了。

调用

local p = LuaBindingTest.new(0)

    p:add(4,1)

    p:sub(2,1)

OVER

cocos2dx lua学习笔记 <一> quick 3.5定义本身C++类是必然lua的更多相关文章

  1. 【Cocos2d-X开发学习笔记】第09期:渲染框架之菜单类(CCMenu)的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010    一.菜单项(CCMenuItem) 菜单项 ...

  2. 【Cocos2d-X开发学习笔记】第03期:渲染框架之导演类(CCDirector)的使用

    本系列学习教程使用的是cocos2d-x-2.1.4版本(截至目前为止最新稳定版) ,PC开发环境Windows7,C++开发环境VS2010 提到“导演”一词,想必读者最先联想到的是电影.作为娱乐产 ...

  3. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  4. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  5. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  6. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  7. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  8. (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境

    Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...

  9. Lua学习笔记:面向对象

    Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...

随机推荐

  1. MongoDB实战指南(六):MongoDB复制集之复制集概述

    1. 复制集概述 数据库总是会遇到各种失败的场景,如网络连接断开.断电等,尽管journaling日志功能也提供了数据恢复的功能,但journaling通常是针对单个节点来说的,只能保证单节点数据的一 ...

  2. 基于CommentCoreLibrary简单的弹幕实现

    本文地址:http://www.cnblogs.com/liaoyu/p/ccl-demo.html 实现基于开源的 CommentCoreLibrary 最近有需求要实现一个简单的评论弹幕实现,通过 ...

  3. 【Quick 3.3】资源脚本加密及热更新(三)热更新模块

    [Quick 3.3]资源脚本加密及热更新(三)热更新模块 注:本文基于Quick-cocos2dx-3.3版本编写 一.介绍 lua相对于c++开发的优点之一是代码可以在运行的时候才加载,基于此我们 ...

  4. 添加service到SystemService硬件服务

    添加service到SystemService: 添加硬件服务. 创建时间:2015年3月9日(星期一) 晚上11:07 | 分类:硬件驱动Android | 天气: 修改时间:2015年3月10日( ...

  5. Configurataion Printer(基于全新2.2.0API)

    Configurataion Printer import java.util.Map.Entry; import org.apache.hadoop.conf.Configuration; impo ...

  6. hadoop mapreduce核心功能描述

    核心功能描述 应用程序通常会通过提供map和reduce来实现 Mapper和Reducer接口,它们组成作业的核心. Mapper Mapper将输入键值对(key/value pair)映射到一组 ...

  7. AlarmManager用法

    源http://blog.csdn.net/wangxingwu_314/article/details/8060312

  8. 《C#并行编程高级教程》第5章 协调数据结构 笔记

    本章介绍了一些轻量级的同步原语,其中有很大部分是.NET Framework 4才引入的. System.Threading.Barrier 用于一段程序分成多个阶段,每个阶段的开始都需要之前的阶段完 ...

  9. 从零开始学习jQuery (八) 插播:jQuery实施方案

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章属于临时插播,  用于介绍我在本公司的j ...

  10. MVC 路由规则

    一.路由规则说明 先来看MVC中的默认路由的说明 "{controller}/{action}/{id}", // URL with parameters 对于Url /Home/ ...