win7系统cocos2dx 3.4 绑定自定义类到Lua

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

生成截图:

转载于:https://www.cnblogs.com/gamesky/p/4255074.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery无任何标示获取td在表格中的行数和列数

当td没有任何标示时&#xff0c;在jQuery中实现获取其在表格中的行和列&#xff1a;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w…

Dojo实现Tabs页报错(二)

转载于:https://www.cnblogs.com/riasky/p/3481643.html

mongo DB for C#

(1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to C# 驱动 DLLs 1MongoDB.Bson.dll 2MongoDB.Driver.dll 3MongoDB.Driver.Core.dll 或者 Nuget 下载 VS 2012/13 TOOLS -> Library Package Manager –> Manage …

WinLogon事件通知包编程

2007年5月18日&#xff0c;21:18:55| yexiaozhou2003[AT]hotmail.com(cooldog)今天看到CSDN中有网友问道如何获取用户按CtrlAltDel锁定桌面的事件。回帖后大致整理了一下&#xff0c;希望对大家有帮助。 首先我们要了解一下WinLogon&#xff0c;他是负责提供给用户交互式界面的…

bat函数调用 带返回值

bat 脚本之 使用函数 摘自&#xff1a;https://blog.csdn.net/peng_cao/article/details/73999076 综述bat函数写法bat函数调用bat函数返回值综述 Windows bat脚本是一种解释性的脚本语言&#xff0c;可以拿到做很多事情。对于稍简单的问题&#xff1a;比如通过注册表判断下档期…

配置 jvisualvm 监控Java虚拟机

配置JMX远程连接 1. 配置启动参数 启动jar时&#xff0c;添加如下配置-Dcom.sun.management.jmxremote.port5050 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse -Djava.rmi.server.hostname192.168.94.23 启动参数说明 -Dcom.sun…

所有排序算法

---恢复内容开始--- 先看看复杂度大小吧 冒泡排序 直接上代码&#xff0c;? # 冒泡排序def bubble_sort(alist): for j in range(len(alist) - 1, 0, -1): for i in range(j): if alist[i] > alist[i 1]: alist[i], alist[i 1] ali…

亲身经历之微信支付沙箱环境扫码支付遇到的那些坑

很多用户在调用微信支付扫码支付沙箱环境都一脸迷茫&#xff0c;废话不多说&#xff0c;遇到很多坑&#xff0c;为了让大家少走弯路下面直接说说我开发微信支付遇到坑&#xff0c;微信沙箱不是一般的坑&#xff0c;是很大的坑。 1.首先下载的官方demo,不能直接用&#xff0c;里…

Microsoft .NET Pet Shop 4.0 学习之旅(二) - 项目的引用关系1

Microsoft .NET Pet Shop 4.0 学习之旅&#xff08;二&#xff09; 项目的引用关系1 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />初看到Pet Shop 4.0的源代码觉得结构很复杂&#xff0c;今天我只讨论业务逻辑层&#xff08;…

vs.net各版本解决方案相互转换工具

感谢Arthur Liberman, 感谢zu14.cn三角猫 工具下载转载于:https://www.cnblogs.com/JoinZhang/archive/2010/07/09/1774617.html

杂谈杂想!

a) 在Live Write 实施插入地图 b) 金山词霸为什么总是把“音乐(YUE)”念成“音乐&#xff08;LE&#xff09;”&#xff1f;这个bug好多年&#xff01; c) 养的基瘦了&#xff0c;人却变胖了&#xff01; 转载于:https://www.cnblogs.com/jeffersyuan/archive/2007/11/10/95528…

链接Mysql的api mysqli和pdo

HP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved)PDO (PHP Data Objects)PDO 应用在 12 种不同数据库中&#xff0c; MySQLi 只针对 MySQL 数据库。 如果你的项目需要在多种数据库中切换&#xff0c;建议使用 PDO 两者都是面向对…

Vue项目中自动将px转换为rem

一、配置与安装步骤&#xff1a; 1、在 Vue 项目的 src 文件夹下创建一个 config 文件夹&#xff1a; 2、在 config 文件夹中创建 rem.js&#xff1a; 3、将以下代码复制到 rem.js 中&#xff1a; // 基准大小 const baseSize 32 // 设置 rem 函数 function setRem () {// 当前…

MySQL8.0.19下载安装及配置详细步骤

下载&#xff1a; 软件下载地址&#xff1a;https://www.mysql.com/downloads/ 进入主页后下滑见 然后点击下图的MySQL Community Server 进入之后&#xff0c;点击Download进行下载 进入Download之后&#xff0c;点击No thanks, just start my download&#xff08;无需注…

解决[ERROR] [MY-013276] [Server] Failed to set datadir to ‘F:\Mysql\mysql-8.0.19-winx64\data\‘ (OS er

解决[ERROR] [MY-013276] [Server] Failed to set datadir to ‘F:\Mysql\mysql-8.0.19-winx64\data’ (OS errno: 2 - No such file or directory)报错问题 输入&#xff1a;mysqld --initialize --usermysql --console 如下图&#xff1a; 然后输入mysqld -install&#xff…

DataTable操作相关实例

代码 publicDataSet GetChildDepartmentsByUserId(Guid userId) { DataSet ds newDataSet(); try{ OrgChartDB.OrgChart_PermissionDataTable pdt permissionTableAdapter.GetDataByUserId(userId); for(inti 0; …

修改mysql密码时遇见ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that correspo

修改mysql密码时遇见ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘password(‘123456’)’ at line 1报错 如下图&#xff1a; 这个句子翻译过来的意思是…

JavaScript基础内容

1.1 JavaScript基础概念&#xff1a; JavaScript (ECMAScript) &#xff1a;JavaScript 是脚本语言。JavaScript和ECMAScript通常被人用来表达相同的含义&#xff0c;但是JavaScript并不是这么一点含义&#xff0c;它是由ECMAScript 核心. DOM 文档对象模型. BOM 浏览器对象模型…

如何利用navicat可视化软件添加与新建mysql数据库

新建 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 打开navicat,如下图&#xff1a; 点击连接 名称可以…

mysql -- 死锁

死锁&#xff08;Deadlock&#xff09; 什么是死锁 所谓死锁&#xff1a;是指两个或两个以上的进程在执行过程中&#xff0c;因争夺资源而造成的一种互相等待的现象&#xff0c;若无外力作用&#xff0c;它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁&#xf…