【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]

【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类

大家好,又见面了,我是全栈君。

     续【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之三】动手绑定自己定义类至Lua 之后。我们已经完毕了自己定义类至Lua的绑定。在接下来的环节,我们将使用它。

    首先,我们须要确定,通过Python脚本我们生成了哪些绑定文件?我们罗列一个表单。


   // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto    

    1. lua_pet_auto.hpp

    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto

    2. lua_pet_auto.cpp

    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api

   3. lua_pet_auto_api.lua

    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api

    4. Pet.lua


   检查这些文件是否在你的项目其中相对的路径。

F:\Cocos2dx-Lua\Garfield 这是我的演示样例项目所在路径)。

    一切无误的话,我们使用VS2013将”Garfield.sln”project文件打开。我们将在”libluacocos2d\auto”中引入lua_pet_auto.hpp、”lua_pet_auto.cpp

这两个文件声明及定义“register_all_custom_pet()”全局函数。用于完毕对C++绑定类的注冊。完毕类中成员属性及成员函数向Lua的”注入”,实现C++类结构至Lua的”解析”。

register_all_custom_pet()“函数我们一会将用到

【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]


【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]

   检查第三章节中我们创建的”Pet”类文件是否已经正确引入到VS2013project中。


   【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]

   

    完毕这些文件的引入之后,我们将在引擎入口协议类“AppDelegate”调用“register_all_custom_pet()函数来完毕绑定类在该项目的注冊。

   1. 引入” #include “lua_pet_auto.hpp”  头文件; ” register_all_custom_pet() ” 定义于该文件里)

   2. 调用 “register_all_custom_pet()” 。


【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]

    接下来,我们能够在Quick-cocos2d-x项目中使用该“Pet”了。我将在Cocos Code IDE中编写我的脚本程序,该脚本代码中使用了由C++定义的类Pet。例如以下:

    【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]


    回到VS2013project,执行项目。

    假设你碰到诸如打开vsproject导入lua_pet_auto.cpp 和lua_pet_auto.hpp ,lua_pet_auto.cpp中报错说找不到pet.h 文件 编译报错说..\auto\lua_pet_auto.cpp(2): fatal error C1083: 无法打开包括文件:“Pet.h”: No such file or directory这种错误,请參照以下的截图,在VS中填加Class的包括路径。

【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]


【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类[通俗易懂]


    写在最后,为了希望能够尽量帮助看到该篇博文的读者,笔者尽力将每一个环节都进行了具体的截图和说明,难免会略有赘述。同一时候小心翼翼的验证每一个环节。但难免有纰漏之处。假设你在阅读的过程中发现问题。可邮件505633767@qq.com与我联系,很乐意与你交流。


 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115868.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 国际标准纸张尺寸表[通俗易懂]

    国际标准纸张尺寸表[通俗易懂]规格    尺寸(mm)    2A    1189*1862A0    841*1189A1    594*841A2    420*594A3    297*420A4    210*297A5    148*210A6    105*148A7    74*105    A8    52*74A9    37*52    

  • 微信本地数据库解密[通俗易懂]

    微信本地数据库解密[通俗易懂]微信本地数据库解密(安卓)微信的本地数据库EnMicroMsg.db存储在/data/data/com.tencent.mm/MicroMsg/(一长串)/中uin存储在/data/data/com.tencent.mm/shared_prefs/com.tencent.mm_preferences.xml(或auth_hold_prefs.xml)中,IMEI存储在/data/data/…

  • java反转数组_Java中如何将数组反转?Java数组反转的2种方法(代码示例)「建议收藏」

    java反转数组_Java中如何将数组反转?Java数组反转的2种方法(代码示例)「建议收藏」数组操作Java数组如何反转输出?下面本篇文章就给大家介绍2种在java中实现数组反转的简单方法。有一定的参考价值,希望对大家有所帮助。【视频教程推荐:java教程】方法一:使用循环,交换数组中元素的位置使用循环,在原数组中交换元素的位置:第一个元素与最后一个元素交换,第二个元素与最后一个元素交换,依此类推,直到结束。例如,在数组[1,2,3,…,n-2,n-1,n]中,我们可以将1和n进行交…

  • Spring整合Sharding-JDBC分库分表详情

    Spring整合Sharding-JDBC分库分表详情Spring整合Sharding-JDBC分库分表详情一、概述最初线上系统的业务量不是很大,业务数据量并不大,比如说单库的数据量在百万级别以下(事实上千万级别以下都还能支撑),那么MySQL的单库即可完成任何增/删/改/查的业务操作。随着业务的发展,单个DB中保存的数据量(用户、订单、计费明细和权限规则等数据)呈现指数级增长,那么各种业务处理操作都会面临单DB的IO读写瓶颈带来的性能问题。S…

  • 查找-散列查找

    查找-散列查找1.散列的相关概念散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。这里我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为

  • 用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式

    用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式原文链接:http://blog.csdn.net/linglongwunv/article/details/8116359最近在做一些抓取其它网站数据的工作,当然别人不会乖乖免费给你抓数据的,有各

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号