【问题标题】:Array within an Array in LuaLua中数组中的数组
【发布时间】:2012-02-07 20:36:09
【问题描述】:

如果我在 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}

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

我会把level1改成这样吗

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

然后使用

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

【问题讨论】:

  • 我称“this”为表数组指向的“键”。

标签: arrays lua


【解决方案1】:

请记住,Lua 中没有“数组”之类的东西。唯一现有的复杂数据结构是“表”,它是使用{ } 构建的

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

我们看一个例子,我们要建一张表,有两个键,一个数字和一个字符串:

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

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

example[1]
example["key"]

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

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

此表的内容与以前相同。但是键“key”的声明方式不同。我们可以使用字符串键来做到这一点:将它们直接放在表构造函数中。为了索引它们,我们可以使用另一种“语法糖”:

example2.key

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

array.this

对不起,我的英语不是我的第一(和第二)语言。

【讨论】:

  • 除了 nil,你也不能使用NaN 作为表键。
【解决方案2】:

编辑:

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

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

你只需要这样做:

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

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2012-05-21
    • 1970-01-01
    • 2017-03-13
    • 2017-02-09
    • 2018-02-23
    • 2016-12-21
    • 2021-04-11
    • 2015-11-17
    相关资源
    最近更新 更多