Lua中Array中的数组

时间:2012-01-11 13:30:43

标签: arrays lua

如果我在Lua中有这样的代码,我怎么称呼'this'?

array = { this = { pic="hi.png", health=4 } , pos=20 }

编辑:

比方说,我有一张像以下一样的敌人表:

enemy = {}
enemy[1] = {pic="Ships/enem-01.png", hp=2}
enemy[2] = {pic="Ships/enem-02.png", hp=4}
enemy[3] = {pic="Ships/enem-03.png", hp=3}
enemy[4] = {pic="Ships/enem-04.png", hp=5}
enemy[5] = {pic="Ships/enem-05.png", hp=7}
enemy[6] = {pic="Ships/enem-06.png", hp=9}
enemy[7] = {pic="Ships/enem-07.png", hp=15} 

然后我希望能够创建一个有位置的表格。

level1 = {}
level1[1] = { ent = enemy[2], xpos= 20, ypos=20}

如何使用level1调用pic,或者不是我?

我会将level1更改为

level1[1] = {ent = 2, xpos=20, ypos=20}

然后使用

screen:draw(level[1].xpos, level[1].ypos, enemy[level[1].ent].pic) 

2 个答案:

答案 0 :(得分:2)

编辑:

level1[1] = { ent = enemy[2], xpos= 20, ypos=20} 
  

我如何使用level1调用pic,或者不是我?

你只需要这样做:

level1[1].ent.pic -- "Ships/enem-02.png"

答案 1 :(得分:2)

请记住,Lua中没有'array'这样的东西。唯一存在的复杂数据结构是“表格”,使用{ }

构建

表是关联结构,其中存储的每个数据都可以通过任何类型的键索引:数字,字符串甚至其他表。唯一的限制是nil类型。

让我们看一个例子,我们想要构建一个包含两个键,一个数字和一个字符串的表:

example = { [1] = "numberkey", ["key"] = "stringkey" }

请注意,在上面的示例中,表结构与您的示例不同。 您使用[ ]索引表,如下例所示:

example[1]
example["key"]

但是这种创建和索引字符串键的语法非常冗长。因此,为了让我们的生活更轻松,Lua为我们提供了所谓的“语法糖”:

example2 = { [1] = "numberkey", key = "stringkey" }

此表的内容与之前相同。但关键的“关键”被宣布不同。我们可以使用字符串键来完成:将它们直接放在表构造函数中。为了索引它们,我们可以使用另一种“语法糖”:

example2.key

回到您的示例,您可以访问this,这是一个字符串键,使用:

array.this

对我的英语很抱歉,这不是我的第一语言(和第二语言)。