截至目前,我正在尝试通过Tiled绘制分层世界地图,通过Tiled(非常有用,因为您可以直接在.lua文件中导出您可视化创建的地图)。
关于这一点,我遇到了一个问题:Tiled提供了这种类型的lua文件,我们称之为data.lua
return {
---data
tilesets = {
image = "path/to/image",
imagewidth = 2560,
imageheight = 1664,
--other data
},
layers = {
layer1 = {}, --there's data in here
layer2 = {} --there's data in here
}
}
在另一个文件world_map.lua中,我有这个
local world_map = {}
local world_data = {}
world_data = require "data"
local last_tile = (world_data.tilesets.imagewidth * world_data.tilesets.imageheight)/(world_data.tilewidth * world_data.tileheight)
--various functions which also use world_data
return world_map
现在,当我运行此代码时,我发现在图像宽度上操作算术运算是不可能的,因为它没有价值,所以,我猜,它看起来没有初始化。我无法理解我做错了什么:require指令应该将该表(由data.lua返回的表)设置为局部变量,然后我只需访问该变量并对其字段进行操作。然后,嵌套表中的所有字段都使用它们自己的值进行初始化,但根据解释器它们是nil。我做错了什么?