如何在嵌套在表'A'中的表'B'中使用来自表'A'的值?(lua语言)
2014-8-13 12:1:39
收藏:0
阅读:88
评论:2
在真正的项目中,TEST_TABLE 中将包含许多 TEST_TABLE_NESTED,每个都有自己的 testVariable 和一堆 testScript。testScript 中的 test 函数将在 C++ 代码中使用,TEST_TABLE_NESTED 表格也将从C++代码中自动添加。
TEST_TABLE =
{
TEST_TABLE_NESTED =
{
testVariable = 5,
testScript =
{
test = function()
print(testVariable, "hello") --如何访问 'testVariable'?
end
}
}
}
编辑: 这是使用此脚本的实际情况:
GameObjectScriptTables =
{
GameObject_1 = --Container of scripts corresponding to some gameObject
{
gameObjectOwner = actual_object_passed_from_c++, --This is an actual object passed from c++
GameObjectScript_1 = --This is a script with update(dt) method which will be called somwhere in c++ code
{
update = function(dt)
--here I want to use some data from gameObjectOwner like position or velocity
end
}
}
GameObject_2 =
{
gameObjectOwner = actual_object_passed_from_c++,
GameObjectScript_1 =
{
update = function(dt)
--here I want to use some data from gameObjectOwner like position or velocity
end
},
GameObjectScript_2 =
{
update = function(dt)
--here I want to use some data from gameObjectOwner like position or velocity
end
}
}
--And so on
}
想法是存在一些 testVariable 对象(从 C++ 传递),其数据在整个 TEST_TABLE_NESTED 中使用。对于我来说,上面的示例对于此任务很自然,但它打印 nil 而不是 5。因此,如何在不打印完整路径(如 TEST_TABLE.TEST_TABLE_NESTED.testVariable)的情况下从 testScript 访问 testVariable?
点赞
用户3399810
我通过为每个 GameObjectScript_N 提供一个 gameObjectOwner 实例使其工作。但是我不知道这是否是昂贵的解决方法。
2014-08-13 19:06:23
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你正在寻求类似“父”指针的东西,这可以告诉表B关于表A,但是它不存在。在内部,它们唯一的关联是A的一个值恰好是B,但是任何数量的表格都可以包含B作为一个值。B的父级是哪个?
如果您想让B了解A,您需要告诉它。您可以向“更新”添加一个额外的参数,该参数接收游戏所有者对象,或者“更新”可以是一个包含游戏所有者的闭包,因此等等。