quick-cocos2dx 3.3 c++绑定到Lua

quick-cocos2dx 3.3 c++绑定到Lua,第1张

概述网上帖子很多 参照了几篇 才搞定 1:注意事项  电脑上Python 不要装多个版本(2.x 3.x同时安装)   本帖子需要的版本是2.7.x,最好是2.7.6,如果同时安装了3.x的话 会有各种问题 2:新建c++ 文件 frameworks\runtime-src\Classes\下边创建  MyLuaBridge.h  #pragma once #include "cocos2d.h" c

网上帖子很多 参照了几篇 才搞定

1:注意事项 电脑上Python 不要装多个版本(2.x 3.x同时安装) 本帖子需要的版本是2.7.x,最好是2.7.6,如果同时安装了3.x的话 会有各种问题

2:新建c++ 文件

frameworks\runtime-src\Classes\下边创建

MyLuaBrIDge.h

#pragma once
#include "cocos2d.h"


class MyLuaBrIDge : public cocos2d::Ref
{
public:
@H_404_19@MyLuaBrIDge(voID);
@H_404_19@~MyLuaBrIDge(voID);
@H_404_19@static MyLuaBrIDge * getInstance();
@H_404_19@static MyLuaBrIDge * myLuaBrIDge;
@H_404_19@voID showErrorAlert(std::string msg);
};


MyLuaBrIDge.cpp

#include "MyLuaBrIDge.h"
MyLuaBrIDge* MyLuaBrIDge::myLuaBrIDge = nullptr;
MyLuaBrIDge::MyLuaBrIDge(voID)
{
}
MyLuaBrIDge::~MyLuaBrIDge(voID)
{
}
MyLuaBrIDge * MyLuaBrIDge::getInstance()
{
@H_404_19@if (!myLuaBrIDge)
@H_404_19@{
@H_404_19@myLuaBrIDge = new (std::nothrow) MyLuaBrIDge();
@H_404_19@CCASSERT(myLuaBrIDge,"FATAL: Not enough memory");
@H_404_19@}
@H_404_19@return myLuaBrIDge;
}
voID MyLuaBrIDge::showErrorAlert(std::string msg)
{
@H_404_19@cocos2d::MessageBox(msg.c_str(),"Error");
}

3:编写ini文件

frameworks\cocos2d-x\tools\tolua 新建MyLuaBrIDge.ini文件 拷贝其他ini文件内容然后稍作改动即可

prefix = MyLuaBrIDge

target_namespace = cc

headers = %(cocosdir)s/../runtime-src/Classes/MyLuaBrIDge.h

classes = MyLuaBrIDge

skip =

这部分网上有很多帖子


4:更改python脚本

'MyLuaBrIDge.ini' : ('MyLuaBrIDge','lua_MyLuaBrIDge_auto'),\
# 'cocos2dx_assetsmanager.ini' : ('cocos2dx_assetsmanager','lua_cocos2dx_assetsmanager_auto'),\


把新建的ini加进去

然后运行脚本 不出意外的话 就能成功


5:

frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto 里边会生成lua_MyLuaBrIDge_auto.cpplua_MyLuaBrIDge_auto.hpp两个文件

然后在vs工程中libluacocos2d 把这两个文件 加入到 auto中,由于cpp文件中包含了#include "MyLuaBrIDge.h" 这个头文件,所以得把$(EngineRoot)\..\runtime-src\Classes这个路径加入到包含目录中,不然vs找不到.h文件会报错

6:

此时编译不出意外能正常通过,然后就是注册

appdelegate.cpp中 添加#include "lua_MyLuaBrIDge_auto.hpp"

register_all_MyLuaBrIDge(L);

编译新的player 即可使用


7:lua调用

cc.MyLuaBrIDge:getInstance():showErrorAlert("HelloWorld");




总结

以上是内存溢出为你收集整理的quick-cocos2dx 3.3 c++绑定到Lua全部内容,希望文章能够帮你解决quick-cocos2dx 3.3 c++绑定到Lua所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1063078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存