Cocos2d-x 3.0开始使用bindings-generator来生成c++类的lua绑定。bindings-generator基于tolua++,通过配置tools/tolua中的ini文件以及运行genbindings.py就可以自动生成c++类的绑定,具体的步骤在cocos2d-x-3.4\tools\tolua\README.mdown文件中,文档说的很简单,但是这个过程中我遇到很多问题,根本无法生成,索性把python生成绑定文件的环境搬到VS里,这样就能调试,找出问题了,具体环境的搭建下面会讲到。先看下具体生成绑定文件的说明:

1.README.mdown 说明

On Windows:
------------

* Make sure that you have installed `android-ndk-r9b`.

安装android-ndk-r9b,安装好以后要添加环境变量NDK_ROOT,这个目录的上级目录中不能有空格存在, 比如说, 如果是放在program files目录下面, 后面生成.h & .cpp文件的时候会出错, 我的是:E:\soft\android-ndk-r9b_64

* Download python2.7.3 (32bit) from (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi).

安装python2.7.3

* Add the installed path of python (e.g. C:\Python27) to windows environment variable named 'PATH'.

安装好python后, 在系统环境变量的PATH中设置python所在的目录,我的是E:\soft\python2.7.3

* Download pyyaml from http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe and install it.

下载并安装PyYAML
* Download pyCheetah from https://raw.github.com/dumganhar/my_old_cocos2d-x_backup/download/downloads/Cheetah.zip, unzip it to "C:\Python27\Lib\site-packages"

下载pyCheetah ,并解压到\Python27\Lib\site-packages目录
* Set environment variables (`NDK_ROOT`)

设置NDK_ROOT环境变量,第一步已经说过
* Go to "cocos2d-x/tools/tolua" folder, and run "genbindings.py". The generated codes will be under "cocos\scripting\auto-generated\js-bindings".

进入cocos2d-x-3.4\tools\tolua\ ,执行genbindings.py

2.python visual studio 环境搭建

1.到http://pytools.codeplex.com/ 下载 python 在VS中的IDE插件PTVS

2.在VS中创建python 工程

3. 把cocos2d-x-3.4\tools下 bindings-generator 和 tolua 文件夹复制到python工程目录下,复制一份genbindings.py 改名为createCustomBindings.py用来调试

4.打开python工程,把刚才添加的两个文件夹包含到工程,具体操作是:在VS里点击显示所有文件,然后选中2个文件夹,右击选择包括到项目

5.右击项目选择属性,设置启动文件为 ./tolua/createCustomBindings.py

环境打好后,开始下面的调试修复工作

3.调试修复

按F5调试,接下来会有很多报错,所以就不一一列举了,直接把改好的项目拿出来

http://yunpan.cn/cJGqhpB479dAv  访问密码 a2eb

 

下载后

createCustomBindings.py中的output_dir = '%s/HappyXiYou/Classes/auto' % workdir 这个为生成文件保存的路径,改成自己的

myclass.ini中

为头文件路径和要导出的类名,要改成自己的,workdir实在程序中赋值的,自己先把代码流程看下,基本有问题的话也可以自己解决了。

主要修改了一下几个文件,具体改了啥,可以自己和3.3原来的文件对比下就可以了

关于配置文件的细节说明请参考:

http://www.cocoachina.com/bbs/read.php?tid=196416

http://cn.cocos2d-x.org/tutorial/show?id=1421

http://www.cnblogs.com/emyueguang/p/3713635.html

http://cocos2d-x.org/docs/manual/framework/native/v2/lua/lua-binding-for-custom-class/zh

生成截图:

win7系统cocos2dx 3.4 绑定自定义类到Lua的更多相关文章

  1. cocos2dx 2.x版本:简化提炼tolua++绑定自定义类到lua中使用

    cocos2dx的3.x版本已经提供了更好地绑定方式,网上有很多相关的教程,这里给一个链接:http://www.cocoachina.com/bbs/read.php?tid=196416. 由于目 ...

  2. cocos2dx lua 绑定之二:手动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...

  3. cocos2dx lua 绑定之一:自动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注 ...

  4. cocos2dx-3.x 导出自定义类到 lua 过程详解

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.简介 最近正在学习cocos2d中的lua游戏开发,因为lua开发的热更新特性,大家开发游戏好像都会优先选择lua作为 ...

  5. 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用

    步骤一:首先自定义类(这里Himi自定义类名 “MySprite”) MySprite.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // //  ...

  6. cocos2dx3.0rc导出自定义类到lua的方法

    以前要导出c++类到lua,就得手动维护pkg文件,那简直就是噩梦,3.0以后就会感觉生活很轻松了. 转载请注明出处http://www.cnblogs.com/mrblue/p/3637910.ht ...

  7. cocos2dx3.0导出自定义类到lua的方法详细步骤

    我写了一个用3.0的工具导出类到lua,自动生成代码的方法. 以前要导出c++类到lua,就得手动维护pkg文件,那简直就是噩梦,3.0以后就会感觉生活很轻松了. 下面我就在说下具体做法.1.安装必要 ...

  8. cocos2d-x-lua如何导出自定义类到lua脚本环境

      这篇教程是基于你的工程是cocos2d-x-lua的项目,我假设你已经完全驾驭cocos-x/samples/Lua/HelloLua工程,基本明白lua和c++互调的一些原理. 我们的目的是要在 ...

  9. 【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三】动手绑定自己定义类至Lua

        查看[Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之二]新建项目中配制环境,我们完美的在新建项目中完毕了绑定须要的环境,接下来才是最关健的一步.绑定自己定义C++类至Lu ...

随机推荐

  1. cocos2d-x设计模式发掘之五:防御式编程模式

    http://www.ityran.com/archives/2105 本文由子龙山人原创,泰然授权转载,转载请注明出处并通知子龙山人! 声明:防御式编程是提高程序代码质量的一种手段,它不能算是真正意 ...

  2. 2016iweb峰会参会总结

    2016年8月27日去国家会议中心参加iweb峰会. 8点半开始签到入场,8点20分排队签到的人已经排到另一个门口,人超级多啊. 9点一如既往的由h5女神娜姐开场. 上午场 基本是各公司的大佬们介绍各 ...

  3. mysql中查询某字段所在的表方法

    select TABLE_NAME from information_schema.COLUMNS where COLUMN_NAME = 'type'

  4. 制作win7+ubuntu +winPE+CDlinux多系统启动U盘

    制作前期准备工作 1.需要软件 grub4dos(http://sourceforge.net/projects/grub4dos/files/) UltraISO(http://cn.ezbsyst ...

  5. YII中的表单挂件

    利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...

  6. css-01

    1.CSS:级联样式表,设置页面的样式 2.css基本的语法:     属性:值; 3.CSS的引入   |-1.元素内容的引入:内联样式       <元素名 style="属性:值 ...

  7. UITabBarController 初学

    纯代码编写UITabBarController, 不多说,直接见代码 RViewController1 *vc1 = [[RViewController1 alloc]init]; UINavigat ...

  8. DevExpres.XtraLayout控件运行时动态设置数据项

    问题分析: 通常.我们使用XtraLayout控件,是需要做以下的几个步骤来实现的: 1.  在窗体上拖拉一个 LayoutControl控件,设置它的填充属性: 2.  拖拉一些常规编辑控件到Lay ...

  9. poj1308 Is It A Tree?(并查集)详解

    poj1308   http://poj.org/problem?id=1308 题目大意:输入若干组测试数据,输入 (-1 -1) 时输入结束.每组测试数据以输入(0 0)为结束标志.然后根据所给的 ...

  10. 学习笔记_Java_day13_JSTL_自定义标签库(9)

    自定义标签 1 自定义标签概述 1.1 自定义标签的步骤 其实我们在JSP页面中使用标签就等于调用某个对象的某个方法一样,例如:<c:if test=””>,这就是在调用对象的方法一样.自 ...