定义 table 个平台的更短方式
Shorter way to define a table of platforms
所以基本上我有这段代码,它控制我的游戏平台(我想创建一个 2d 平台游戏)(Love2D Lua)这是脚本
platforms = {}
platform1 = { x = 0, y = 600, width = 279, height = 49 }
platform2 = { x = 279, y = 600, width = 279, height = 49 }
platform3 = { x = 558, y = 600, width = 279, height = 49 }
table.insert(platforms, platform1)
table.insert(platforms, platform2)
table.insert(platforms, platform3)
control/create 平台有更好的方法吗?
因为只有 x
值被更改:
platforms = {}
for _, x in ipairs{0, 279, 558} do
table.insert(platforms, {x = x, y = 600, width = 279, height = 49})
end
将platforms
用作数组(这似乎是你想要的):
platforms = {
{ x = 0, y = 600, width = 279, height = 49 },
{ x = 279, y = 600, width = 279, height = 49 },
{ x = 558, y = 600, width = 279, height = 49 },
}
如果您的平台有共同的尺寸,您可以使用类似这样的东西:
platforms = {
{ x = 0, y = 600 },
{ x = 279, y = 600 },
{ x = 558, y = 600 },
};
for _,v in ipairs(platforms) do
v.width = 279;
v.height = 49;
end
正如其他人所说,要声明它们,您可以在声明时将它们放在 table 中。
platforms = {
{ x = 999, y = 999, w = 999, h = 99 },
...
}
一旦你建立了table,你就可以随时添加它。
table.insert(platforms, { x = 111, y = 111, w = 111, h = 111 }
或者拿走一个,前提是你知道它是哪个索引(它在列表中有多远)
table = {
{ }, -- Index 1
{ }, -- Index 2
...
}
然后拿走一个:
table.remove(platforms, 1)
这将删除索引 1 下的平台。
要筛选它们,您可以使用 ipairs。
for i, v in ipairs(platforms) do
v.y = v.y - 10 * dt -- Do something, this would slowly raise all platforms
end
这应该是你所需要的,玩得开心!
所以基本上我有这段代码,它控制我的游戏平台(我想创建一个 2d 平台游戏)(Love2D Lua)这是脚本
platforms = {}
platform1 = { x = 0, y = 600, width = 279, height = 49 }
platform2 = { x = 279, y = 600, width = 279, height = 49 }
platform3 = { x = 558, y = 600, width = 279, height = 49 }
table.insert(platforms, platform1)
table.insert(platforms, platform2)
table.insert(platforms, platform3)
control/create 平台有更好的方法吗?
因为只有 x
值被更改:
platforms = {}
for _, x in ipairs{0, 279, 558} do
table.insert(platforms, {x = x, y = 600, width = 279, height = 49})
end
将platforms
用作数组(这似乎是你想要的):
platforms = {
{ x = 0, y = 600, width = 279, height = 49 },
{ x = 279, y = 600, width = 279, height = 49 },
{ x = 558, y = 600, width = 279, height = 49 },
}
如果您的平台有共同的尺寸,您可以使用类似这样的东西:
platforms = {
{ x = 0, y = 600 },
{ x = 279, y = 600 },
{ x = 558, y = 600 },
};
for _,v in ipairs(platforms) do
v.width = 279;
v.height = 49;
end
正如其他人所说,要声明它们,您可以在声明时将它们放在 table 中。
platforms = {
{ x = 999, y = 999, w = 999, h = 99 },
...
}
一旦你建立了table,你就可以随时添加它。
table.insert(platforms, { x = 111, y = 111, w = 111, h = 111 }
或者拿走一个,前提是你知道它是哪个索引(它在列表中有多远)
table = {
{ }, -- Index 1
{ }, -- Index 2
...
}
然后拿走一个:
table.remove(platforms, 1)
这将删除索引 1 下的平台。
要筛选它们,您可以使用 ipairs。
for i, v in ipairs(platforms) do
v.y = v.y - 10 * dt -- Do something, this would slowly raise all platforms
end
这应该是你所需要的,玩得开心!