如何遍历集合中的结果?
How to iterate through results in sets?
在我的桌面模拟器中 mod 我有一个包,当有东西掉进包里时,会调用 emptyContents()
函数。比如我可以在袋子里丢15个骰子。
在 emptyContents()
函数中,我遍历包中的对象。但是正如您所看到的,我必须放入多个 if 语句来捕捉放入的骰子数量,因为我希望骰子在不同的位置生成。
contents 变量是包中骰子的数量。
function emptyContents()
contents = self.getObjects()
for i, _ in ipairs(self.getObjects()) do
if i <= 6 then
self.takeObject(setPosition(5, -3))
elseif i <= 12 then
self.takeObject(setPosition(12.4,-5))
elseif i <= 18 then
self.takeObject(setPosition(19.8,-7))
end
end
end
如何使函数不那么静态?因为现在我需要为每组 6 个骰子编写 if 语句。
也许你可以添加这样的配置:
local t = {
{6, 5, -3},
{12, 12.4, -5},
{18, 19.8, -7},
}
function emptyContents()
contents = self.getObjects()
for i, _ in ipairs(self.getObjects()) do
for _, v in ipairs(t) do
local l, p1, p2 = unpack(v)
if i <= l then
self.takeObject(setPosition(p1, p2))
break
end
end
end
end
在我的桌面模拟器中 mod 我有一个包,当有东西掉进包里时,会调用 emptyContents()
函数。比如我可以在袋子里丢15个骰子。
在 emptyContents()
函数中,我遍历包中的对象。但是正如您所看到的,我必须放入多个 if 语句来捕捉放入的骰子数量,因为我希望骰子在不同的位置生成。
contents 变量是包中骰子的数量。
function emptyContents()
contents = self.getObjects()
for i, _ in ipairs(self.getObjects()) do
if i <= 6 then
self.takeObject(setPosition(5, -3))
elseif i <= 12 then
self.takeObject(setPosition(12.4,-5))
elseif i <= 18 then
self.takeObject(setPosition(19.8,-7))
end
end
end
如何使函数不那么静态?因为现在我需要为每组 6 个骰子编写 if 语句。
也许你可以添加这样的配置:
local t = {
{6, 5, -3},
{12, 12.4, -5},
{18, 19.8, -7},
}
function emptyContents()
contents = self.getObjects()
for i, _ in ipairs(self.getObjects()) do
for _, v in ipairs(t) do
local l, p1, p2 = unpack(v)
if i <= l then
self.takeObject(setPosition(p1, p2))
break
end
end
end
end