2013-05-20 61 views
1

我試圖製作敵人的數組並繪製它,但是如果它不是數組本身的話,它會在draw函數中使用不良參數:main。盧阿:38:不好的論據#2到'矩形'(數字預計,得到零) 任何人都可以請解釋我在做什麼錯在這裏它是使用通用的?在多維數組元素中創建表並繪製它

陣列碼:

enemies = {} 
for i=0,7 do 
    enemies[i] = {} 
    for j=0,2 do 
     enemy = {} 
     enemy.width = 40 
     enemy.height = 20 
     enemy.x = i * (enemy.width + 60) + 100 
     enemy.y = enemy.height + 100 
     table.insert(enemies[i],enemy) 
    end 

end 
end 

繪圖功能:

--enemy 
love.graphics.setColor(0,255,255,255) 
for i,v in ipairs(enemies) do 
    love.graphics.rectangle("fill", v.x, v.y, v.width, v.height) 
end 

回答

2
enemies = {} 
for i=1,8 do 
    for j=1,3 do 
     local enemy = {} 
     enemy.width = 40 
     enemy.height = 20 
     enemy.x = i * (enemy.width + 60) + 100 
     enemy.y = enemy.height + 100 
     table.insert(enemies, enemy) 
    end 

end 

我不知道,如果這是你的原意雖然。無論如何,你爲什麼得不到零的原因是你的版本ipairs返回另一個表,其中包含enemy的三個實例。爲了您的版本工作,你就必須添加其他ipairs

for i,v in ipairs(enemies) do 
    for _,e in ipairs(v) do 
     love.graphics.rectangle("fill", e.x, e.y, e.width, e.height) 
    end 
end 

請記住用local的功能臨時工。和Lua陣列從1開始,而不是0.

+0

謝謝它的作品,並與幾個調整顯示3行,只有問題是即時失蹤一列敵人。 –