1

我正在尝试制作敌人数组并绘制它,但我不断收到错误,如果它不是关于数组本身,它是关于绘制函数中的错误参数:main.lua:38:bad argument#2 to 'rectangle'(number预期,没有)谁能解释我在这里做错了什么是通用的吗?

数组代码:

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
4

1 回答 1

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。

于 2013-05-20T19:46:48.623 回答