【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与我联系,很乐意与你交流。


 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eval在python中是什么意思_如何在Python中使用eval ?

    eval在python中是什么意思_如何在Python中使用eval ?Python中的eval是什么?在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种。eval函数的语法如下:eval(expression,globals,locals)如上所示,eval函数采用三个参数:expression–需要一个字符串,该字符串将被解析并评估为Python表达式globals(可选)–一个字典,用于指定…

    2025年6月10日
    4
  • Android物联网应用程序开发(智慧城市)—— 摄像头监控界面开发「建议收藏」

    Android物联网应用程序开发(智慧城市)—— 摄像头监控界面开发「建议收藏」效果:布局代码:<?xmlversion=”1.0″encoding=”utf-8″?><RelativeLayoutxmlns:android=”http://schemas.android.com/apk/res/android”xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android

    2022年6月18日
    27
  • 字符串有哪些_vue子组件emit方法失效

    字符串有哪些_vue子组件emit方法失效ES2017引入了字符串补全长度的函数。如果某个字符串的长度不够指定的长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。’a’.padStart(3,’0′)//’00a’ ‘x’.padEnd(5,’ab’)//’xabab’ ‘x’.padEnd(4,’ab’)//’xaba’上面代码中,padStart()和padSt…

    2025年10月16日
    1
  • 如何一键远程开机,远程唤醒功能[通俗易懂]

    如何一键远程开机,远程唤醒功能[通俗易懂]使用ToDesk可以在千里之外为您的设备远程进行开机操作视频教程:https://update.todesk.com/wol.mp4ToDesk支持将关机状态下的设备(Windows,macOS,Linux)唤醒开机.这需要满足2个条件:1.开启电脑的网卡WakeOnLAN功能2.您要开机的电脑设备在同一交换机(路由器下),需要有另外一个ToDesk端在运行.比如其他的电脑或手机,iPad,Android电视盒子,或家人的手机安装一个ToDesk,这样您就可以在千里之外为您的电脑

    2022年6月2日
    84
  • Tensorflow实现各种学习率衰减

    Tensorflow实现各种学习率衰减Tensorflow实现学习率衰减觉得有用的话,欢迎一起讨论相互学习~FollowMe参考文献DeeplearningAIAndrewNgTensorflow1.2API学习率衰减(learningratedecay)加快学习算法的一个办法就是随时间慢慢减少学习率,我们将之称为学习率衰减(learningratedecay)…

    2022年6月3日
    35
  • Laravel 5.5 将会要求 PHP 7.0+

    Laravel 5.5 将会要求 PHP 7.0+

    2021年10月17日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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