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

인덱스와 함께 있어야하기 때문에 "set.color"함수는 "box.color.r"참조를 인식하지 못합니다. 원하는 인덱스가있는 테이블을 전달하더라도 작동하지 않습니다. box [id] .color.r. 이 접근법은 그다지 좋은 제안이 아닙니다. – kepler425b

+0

@sakvojaz,'setColor()'는 전달한 데이터와 아무 관련이 없습니다. 'box.color'가 없으면'all_boxes [id] .color'도 없다는 것을 의미합니다. 결국,'drawBox()'인자의'box'는'all_boxes [id]'와 같은 객체입니다. 'drawBox'에 대한 모든 호출을 수정했는지 확인하십시오. 이전 인수 계약이있는 호출이 없습니다. 모든 상자 플러스 ID의 표가 아닌 단일 상자를 전달해야합니다. – Vlad