事情是这样的,我试图在computercraft中创建一个完全可定制的UI,使用lua数组,当我使用它时,ui似乎总是空的
function dupChar(char, num)
ret = ''
for ii=1,num do
ret = ret..char
end
return ret
end
function drawLoad()
--Pattern:
-- X, Y, Text, FG, BG, Disabled for op, button action
ui = {}
ui.hungerStart = {3,4,'[',nil,nil,false,'none'}
ui.hungerMid1 = {ui.hungerStart[1] + 1,ui.hungerStart[2],dupChar('-',20),nil,nil,false,'none'}
ui.hungerMid2 = {ui.hungerStart[1] + 1,ui.hungerStart[2],hunger,nil,nil,false,'none'}
ui.hungerStop = {ui.hungerStart[1] + 21,ui.hungerStart[2],']',nil,nil,false,'none'}
ui.healthStart = {3,6,'[',nil,nil,false,'kill'}
ui.healthMid1 = {ui.healthStart[1] + 1,ui.healthStart[2],dupChar('-',20),nil,nil,false,'health'}
ui.healthMid2 = {ui.healthStart[1] + 1,ui.healthStart[2],health,nil,nil,false,'health'}
ui.healthStop = {ui.healthStart[1] + 21, ui.healthStart[2],']',nil,nil,false,'heal'}
end
function drawAdv(pName, page)
isOp = false
pHealth = 10
pHunger = 10
health = dupChar('$',pHealth)
hunger = dupChar('@',pHunger)
drawLoad()
color(custCol.default[1], custCol.default[2])
stat.clear()
term.clear()
for index, value in ipairs(ui) do
x, y, text, fg, bg, disOp, action = value[1],value[2],value[3],value[3],value[4],value[5],value[6]
color(custCol.default[1], custCol.default[2])
cur(x,y)
if disOp then
color(custCol.disOp[1], custCol.disOp[2])
else
color(fg,bg)
end
awrite(text)
end
end
另一件事是要知道
for index, x, y, text, fg, bg, disOp, action in ipairs(ui) do
或
for index, value in ipairs(ui) do
x, y, text, fg, bg, disOp, action = value[1],value[2],value[3],value[3],value[4],value[5],value[6]
是获取列表条目的方法
注意:代码有点凌乱,但这是因为我尽量不在ComputerCraft中使用它(一些函数仍然存在,不能在lua中使用)
感谢您的阅读并可能对我有所帮助:)
发布于 2013-03-05 05:17:48
for index, value in ipairs(ui) do
local x, y, text, fg, bg, disOp, action = unpack(value)
-- do something
end
function dupChar(char, num)
return char:rep(num)
end
https://stackoverflow.com/questions/15210660
复制相似问题