我希望能够从Lua调用C函数以更改在C中定义的变量,但我不希望Lua“用户”意识到它们是函数。
例如,在C中创建一个整数和一个数组:
现在程序创建了一个Lua状态并运行了以下代码:
我希望它们在lua脚本中看起来像这样:
例如,在C中创建一个整数和一个数组:
int c_level = 0;
int c_map[4] = {0,0,0,0};
现在程序创建了一个Lua状态并运行了以下代码:
set_level(2) --c_level = 2
set_tile(1,23) --c_map[0] = 23
我希望它们在lua脚本中看起来像这样:
L_level = 2
L_map[1] = 23
因此,L_level和L_map将是在C中定义的函数。
L_level的参数将是“2”。
L_map的参数是“1”和“23”。
这可能吗?
我可以使用getglobal获取lua变量,但我想知道是否可以创建一些看起来像我展示的lua函数。
谢谢。
__index
和__newindex
元方法来实现这一点。 - Yakov Galka