问题标签 [lua-c++-connection]
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.
c++ - Lua 和 C++:职责分离
请帮助对组织 C++/Lua 游戏代码的方式进行分类并区分它们的职责。最方便的方法是什么,你用哪一种?
例如,Lua 可以仅用于初始化 C++ 对象,也可以在每次游戏循环迭代时使用。它可以仅用于游戏逻辑,也可以用于图形。一些游戏引擎可以完全控制脚本中的所有子系统!我真的不喜欢这种方法(根本没有分离)。
将所有游戏对象(npc、位置)实现为没有 C++ 对象的 Lua 表是一个好主意吗?或者最好是镜像它们(控制 C++ 对象的 Lua 表)?或者是其他东西?
谢谢你。
编辑。我的分类:Lua 和 C++:职责分离。
话题继续:Lua、游戏状态和游戏循环
c++ - Lua,游戏状态和游戏循环
在每次游戏循环迭代时调用 main.lua 脚本——这是好的还是坏的设计?它如何影响性能(相对)?
从.维护游戏状态。C++ 主机程序或b。来自 Lua 脚本或c。从两者同步它们?
(关于该主题的上一个问题:Lua 和 C++:职责分离)
(我投票给每个答案。最好的答案将被接受。)
c++ - 在 Lua 表中注册 C 函数
如何在 Lua 中注册一个 C 函数,但不是在全局上下文中,而是作为表字段?
c++ - 返回字符串向量的最简单的lua函数
我需要一个非常简单的 c++ 函数,它调用一个返回字符串数组的 lua 函数,并将它们存储为 c++ 向量。该函数可能如下所示:
(其中 lua 源代码包含一个返回字符串数组的 lua 函数)。
有任何想法吗?
谢谢!
c++ - 将成员函数添加到绑定到 Lua 的 C++ 类
我一直在研究如何将 C++ 类绑定到 Lua 以在游戏引擎中使用,我遇到了一个有趣的问题。我一直在关注这个网站上的教程:http: //tinyurl.com/d8wdmea。在教程之后,我意识到他建议的以下代码:
只会将 pounce 函数添加到 Monster 的特定实例。所以我将他建议的脚本更改为以下内容:
但是,当我调用 pounce 函数时,脚本会中断。经过进一步测试,我能够成功调用 pounce 函数的唯一方法是将该函数作为 Monster 类的静态成员调用(该函数的代码保持不变):
从语法上讲, badguy:pounce(5,1) 是正确的,但没有正确调用该函数。我只是做错了什么,还是这是lua和c ++之间绑定的限制/我如何绑定这两种语言?
c++ - luaL_dostring 什么都没有放在堆栈上?
我正在尝试学习将 Lua 与 C++ 接口的基础知识,但我遇到了一个问题。我想调用一个返回字符串的函数,然后在 C++ 端使用该字符串,但 luaL_dostring 似乎什么都没有放在 Lua 堆栈上。
即使是一个简单的测试似乎也无法正常工作:
输出:
有任何想法吗?
c++ - 存储和返回 Lua 用户数据
我在 C++ 中有以下类
以及部分lua绑定代码:
我想将这些作为用户数据包装在 Lua 中,这样我就可以执行以下操作:
当我打印的地址时b
,b2
我得到两个唯一的地址,这是有道理的,因为我已经调用了lua_newuserdata
. 但理想情况下,我希望它返回相同的用户数据,因为它们指向相同的内存块。如何做到这一点?
我希望 Lua 负责内存,因此它会在垃圾收集时被正确删除。所以我不知道轻用户数据是否可能。
c++11 - 单个 Lua 状态下的多个脚本并使用 _ENV
我目前正在学习如何使用 Lua C API,虽然我已经成功地在 C/C++ 和 Lua 之间绑定了函数,但我有几个问题:
将多个脚本加载到一个脚本中是个好主意
lua_State
吗?有没有办法关闭特定的块?如果不再使用脚本,我如何lua_State
在保留其他所有内容的同时将其清除?使用可能对函数/全局变量使用相同名称的脚本的最佳方法是什么?如果我加载所有这些新定义会覆盖旧定义。
在线阅读后,我认为我需要将每个加载的块分开到不同的环境中。我设想这种工作的方式是,每次加载一个块时,我都会为其分配一个唯一的环境名称,当我需要使用它时,我只需使用该名称从中获取环境
LUA_REGISTRYINDEX
并执行操作。到目前为止,我还没有弄清楚如何做到这一点。网上有例子,但他们使用 Lua 5.1。
lua-5.1 - How to create table in table in Lua 5.1 using C-API?
I need to create construction like this in Lua 5.1 C-API, not in Lua 5.2 and above
Expected Result: GOOD
Thanks for answers!
lua - 如何创建名称为 C-API 的 Lua 表
如何从 C-API 创建 Lua 表,如下所示:
如何设置表名?我只知道如何创建表和放置值,但不知道如何设置表名。
创建无名称表的代码: