2017-04-19 50 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