问题标签 [luabridge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
379 浏览

luabridge - 如何使用 LuaBridge 将 C++ 对象传输到 lua 脚本

我想将 lua 脚本语言与我的序列化库集成,代码如下:

不幸的是,它几乎完美地工作了 LuaBridge,它正在创建我的“类属性”对象的副本,所以我在脚本中所做的每一个更改,例如:

不要更改我的 c++ 生命周期对象。

我的问题是,如何强制 LuaBridge 将更改的数据复制回我的 c++ 对象?

0 投票
1 回答
632 浏览

c++ - 使用 luabridge 将一些 SFML 暴露给 lua 相对容易吗?

我了解如何将我自己的类公开给 lua,如下所示:

但是,由于我试图将尽可能多的代码移动到 lua 脚本中,所以我希望 lua 类具有 SFML 对象,例如sf::Textor sf::Texture。我没有对 Luabridge 做过很多实验,我不确定我是否能够做这样的事情:

如果这样做不起作用(我担心它可能),我是否需要创建一个包装类,如下所示:

更新:

尝试公开sf::Text该类后,尝试执行该sf::Text::setPosition功能时出现错误:

错误信息:

0 投票
3 回答
872 浏览

c++ - 有没有用 Luabridge 向 Lua 公开 sf::Event 的好方法?

根据LuaBridge 自述文件,LuaBridge 不支持“枚举常量”,我认为它只是enums. 由于sf::Event几乎完全enums是,有什么办法可以公开课程吗?目前我能想出的唯一其他解决方案是检测 C++ 中的按键,然后向 Lua 发送一个描述事件的字符串。显然,现代键盘上有大约 100 多个键,这将导致大量、丑陋的 if 语句。

没用过SFML的朋友:链接到sf::Event类源码


更新:

在尝试创建我的问题中概述的函数后,我发现它无论如何都不起作用,因为在 C++ 中不能返回多个字符串,因此大多数事件都被忽略了。

示例源(不起作用):


更新更新:

由于此问题收到的评论或答案为零,因此我决定不排除其他库。所以,如果有支持枚举的 C++ 库,我会接受

0 投票
1 回答
564 浏览

c++ - Luabridge 中的“addProperty”错误

我有一些非常简单的源代码来公开一个简单的Foo类。

主.cpp:

不幸的是,我收到此错误:

我不知道问题是什么,但我必须使用addProperty否则代码看起来不正确

0 投票
1 回答
309 浏览

c++ - 在 Lua 中绘制 sf::Text 对象时出现分段错误

我已经使用 LuaBridge 向 Lua 公开了许多 SFML 类,并且我已经测试了大多数类并且它们工作得很好(sf::RectangleShapesf::Texture)但是,我遇到了sf::Font和的问题sf::Text。首先,我要公开的 C++ 代码sf::Fontsf::Text

如果我创建一个使用的 lua 脚本Text并且Font我得到一个分段错误,有时. 我的意思是,如果我设置了字体,我只会在绘制 Text 对象时得到错误。

脚本:

更新:

在用其他 SFML 类进行测试后,似乎这对sf::Textureand sf::Sprite// etc 来说不是问题sf::RectangleShapesf::CircleShape这告诉我这是一个sf::Font问题,而不是引用被删除

关于 LuaBridge 和 SFML 的相关问题

0 投票
2 回答
659 浏览

c++ - LuaBridge getGlobal 总是返回 nil

1 周前我用 LuaBridge 做了第一个小测试,它可以从脚本中得到一个 int。

现在我删除了这段代码并尝试在我的游戏引擎中包含 Lua 脚本,但它不再工作。我试图用这个回到基本代码:

用这个脚本

它给了我:

当我尝试从脚本中获取字符串或函数时也是如此,但我不知道我在这方面做错了什么。

感谢您的回答:)

0 投票
1 回答
625 浏览

c++ - 如何将 Lua 用户数据转换为 C++ 类对象?

我有这个 Lua 代码:

它返回代表 Person(使用 LuaBridge 注册的 C++ 类)的用户数据。所以我使用 lua_pcall 调用这个函数,现在 lua 堆栈的最后一个元素是 userdata。我的问题是如何将 -1 的用户数据转换(转换)回 C++ 中的 Person。

我试过这个,但它只是终止程序:

我希望这是有道理的:)

0 投票
1 回答
906 浏览

c++ - 有条件地从 C++ 调用 Lua 函数

我正在使用 Lua 编写 scipts 并将它们嵌入到 C++ 中。我在这个过程中使用了 LuaBridge 。

在我的 Lua 脚本中,我有一些变量需要首先检索以便在 C++ 中使用,此外,我还有一个非常简单的函数:

但是,此函数仅在特定条件下调用即仅在经过一系列复杂计算后从 C++ 代码中获得“真”时调用。

受限于我的 Lua 和 LuaBridge 知识,我知道的是:在我做之后

我可以通过使用从 Lua 脚本中读取变量和函数

但是现在,我需要先读出变量并使用它们,然后在成员函数中

在单独的 C++ 类中定义

将获得条件,如果条件为“真”,将调用此 run() 函数。最好在 C++ 成员函数中调用这个 run() 函数

由于进一步处理的限制。

因此,我想知道这是否可能:

读出函数使用

与开头的其他变量一起并将此 run() 函数“保存”在 C++ 代码中的某个位置(可能作为类成员函数),然后稍后可以通过指针或对象调用 run() 函数班级。这可能吗?如果可能,该怎么做?或者还有什么好主意?

0 投票
0 回答
453 浏览

c++ - 在 C++ 中,luabridge::LuaRef:没有合适的默认构造函数可用

我写了一个lua脚本,想用c++代码解析脚本。在这个脚本中,我有函数,我想获取函数并将其保存以备将来使用。main.cpp就像_

P3626_PORT.lua就像:

luaParser.h就像:

最后,luaParser.cpp是这样的:

编译项目时出现错误

我试图通过初始化列表来解决这个问题,但它不起作用。知道如何解决这个问题吗?

0 投票
3 回答
728 浏览

c++ - How do I use operators in LuaBridge

I'm trying to export my vectors class

but when i try and do the other 3 operators, I have multiple overloads for them. How can I specify which one I want to use and is this even possible?