问题标签 [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.
luabridge - 如何使用 LuaBridge 将 C++ 对象传输到 lua 脚本
我想将 lua 脚本语言与我的序列化库集成,代码如下:
不幸的是,它几乎完美地工作了 LuaBridge,它正在创建我的“类属性”对象的副本,所以我在脚本中所做的每一个更改,例如:
不要更改我的 c++ 生命周期对象。
我的问题是,如何强制 LuaBridge 将更改的数据复制回我的 c++ 对象?
c++ - 使用 luabridge 将一些 SFML 暴露给 lua 相对容易吗?
我了解如何将我自己的类公开给 lua,如下所示:
但是,由于我试图将尽可能多的代码移动到 lua 脚本中,所以我希望 lua 类具有 SFML 对象,例如sf::Text
or sf::Texture
。我没有对 Luabridge 做过很多实验,我不确定我是否能够做这样的事情:
如果这样做不起作用(我担心它可能),我是否需要创建一个包装类,如下所示:
更新:
尝试公开sf::Text
该类后,尝试执行该sf::Text::setPosition
功能时出现错误:
错误信息:
c++ - 有没有用 Luabridge 向 Lua 公开 sf::Event 的好方法?
根据LuaBridge 自述文件,LuaBridge 不支持“枚举常量”,我认为它只是enums
. 由于sf::Event
几乎完全enums
是,有什么办法可以公开课程吗?目前我能想出的唯一其他解决方案是检测 C++ 中的按键,然后向 Lua 发送一个描述事件的字符串。显然,现代键盘上有大约 100 多个键,这将导致大量、丑陋的 if 语句。
没用过SFML的朋友:链接到sf::Event类源码
更新:
在尝试创建我的问题中概述的函数后,我发现它无论如何都不起作用,因为在 C++ 中不能返回多个字符串,因此大多数事件都被忽略了。
示例源(不起作用):
更新更新:
由于此问题收到的评论或答案为零,因此我决定不排除其他库。所以,如果有支持枚举的 C++ 库,我会接受
c++ - Luabridge 中的“addProperty”错误
我有一些非常简单的源代码来公开一个简单的Foo
类。
主.cpp:
不幸的是,我收到此错误:
我不知道问题是什么,但我必须使用addProperty
否则代码看起来不正确
c++ - 在 Lua 中绘制 sf::Text 对象时出现分段错误
我已经使用 LuaBridge 向 Lua 公开了许多 SFML 类,并且我已经测试了大多数类并且它们工作得很好(sf::RectangleShape
等sf::Texture
)但是,我遇到了sf::Font
和的问题sf::Text
。首先,我要公开的 C++ 代码sf::Font
和sf::Text
:
如果我创建一个使用的 lua 脚本Text
并且Font
我得到一个分段错误,有时. 我的意思是,如果我设置了字体,我只会在绘制 Text 对象时得到错误。
脚本:
更新:
在用其他 SFML 类进行测试后,似乎这对sf::Texture
and sf::Sprite
// etc 来说不是问题sf::RectangleShape
。sf::CircleShape
这告诉我这是一个sf::Font
问题,而不是引用被删除
c++ - LuaBridge getGlobal 总是返回 nil
1 周前我用 LuaBridge 做了第一个小测试,它可以从脚本中得到一个 int。
现在我删除了这段代码并尝试在我的游戏引擎中包含 Lua 脚本,但它不再工作。我试图用这个回到基本代码:
用这个脚本
它给了我:
当我尝试从脚本中获取字符串或函数时也是如此,但我不知道我在这方面做错了什么。
感谢您的回答:)
c++ - 如何将 Lua 用户数据转换为 C++ 类对象?
我有这个 Lua 代码:
它返回代表 Person(使用 LuaBridge 注册的 C++ 类)的用户数据。所以我使用 lua_pcall 调用这个函数,现在 lua 堆栈的最后一个元素是 userdata。我的问题是如何将 -1 的用户数据转换(转换)回 C++ 中的 Person。
我试过这个,但它只是终止程序:
我希望这是有道理的:)
c++ - 有条件地从 C++ 调用 Lua 函数
我正在使用 Lua 编写 scipts 并将它们嵌入到 C++ 中。我在这个过程中使用了 LuaBridge 。
在我的 Lua 脚本中,我有一些变量需要首先检索以便在 C++ 中使用,此外,我还有一个非常简单的函数:
但是,此函数仅在特定条件下调用。即仅在经过一系列复杂计算后从 C++ 代码中获得“真”时调用。
受限于我的 Lua 和 LuaBridge 知识,我知道的是:在我做之后
我可以通过使用从 Lua 脚本中读取变量和函数
但是现在,我需要先读出变量并使用它们,然后在成员函数中
在单独的 C++ 类中定义
将获得条件,如果条件为“真”,将调用此 run() 函数。最好在 C++ 成员函数中调用这个 run() 函数
由于进一步处理的限制。
因此,我想知道这是否可能:
读出函数使用
与开头的其他变量一起并将此 run() 函数“保存”在 C++ 代码中的某个位置(可能作为类成员函数),然后稍后可以通过指针或对象调用 run() 函数班级。这可能吗?如果可能,该怎么做?或者还有什么好主意?
c++ - 在 C++ 中,luabridge::LuaRef:没有合适的默认构造函数可用
我写了一个lua脚本,想用c++代码解析脚本。在这个脚本中,我有函数,我想获取函数并将其保存以备将来使用。main.cpp
就像_
P3626_PORT.lua
就像:
luaParser.h
就像:
最后,luaParser.cpp
是这样的:
编译项目时出现错误
我试图通过初始化列表来解决这个问题,但它不起作用。知道如何解决这个问题吗?
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?