2017-04-19 51 views
0

我可以这样做吗?注意参数和索引:带有索引作为功能参数的表格

function drawBox(box, id) 
    love.graphics.setColor(box[id].color.r, box[id].color.g, box[id].color.b, 70) 
    love.graphics.rectangle('fill', box[id].pos.x, box[id].pos.y, box[id].w, box.h) 
    love.graphics.setColor(box[id].color.r/2, box[id].color.g/2, box[id].color.b/2) 
    love.graphics.rectangle('line', box[id].pos.x, box[id].pos.y, box[id].w, box[id].h) 
end 

回答

0

好像box表存储其他表。所以你可以这样做:

function drawBox(box) 
    love.graphics.setColor(box.color.r, box.color.g, box.color.b, 70) 
    love.graphics.rectangle('fill', box.pos.x, box.pos.y, box.w, box.h) 
    love.graphics.setColor(box.color.r/2, box.color.g/2, box.color.b/2) 
    love.graphics.rectangle('line', box.pos.x, box.pos.y, box.w, box.h) 
end 

drawBox(some_boxes[id]) 
+0

这很合理,谢谢! – kepler425b

+0

这不起作用,因为即使我传递了所需索引的表格,“setColor”函数也不会识别“box.color.r”引用,因为它应该与index:box [id] .color.r。这种方法不太好,有什么建议吗? – kepler425b

+0

@sakvojaz,'setColor()'与您传递的数据无关。如果'box.color'不在那里,那就意味着它不是'all_boxes [id] .color'。毕竟,'drawBox()'参数中的'box'与'all_boxes [id]'是同一个对象。检查你是否调用了所有对'drawBox'的调用,并且没有使用旧参数协议的调用。您必须通过单个框,而不是所有框加上id的表格。 – Vlad