在多维数组元素中创建表并绘制它

时间:2013-05-20 19:25:30

标签: lua lua-table love2d

我正在尝试制作敌人数组并绘制它,但我不断得到错误,如果不是数组本身就是关于绘制函数中的错误参数:main.lua: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

1 个答案:

答案 0 :(得分: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

我不知道,如果这是你的意图。无论如何,你得到nil的原因是你的版本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。