事情是这样的,我试图在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)
endhttps://stackoverflow.com/questions/15210660
复制相似问题