Lua 说这些变量是数字,但我不能用它们在 Love2d 中画圆

Lua says that these variables are numbers but I can't use them to make a circle in Love2d

编辑:严重错误,只是忘了提供半径,哈哈。感谢您的帮助:)

我对这件事感到很困惑。我相当确定我的代码的所有部分都有效,但出于某种原因,Love2D 没有打印 xy 坐标,尽管它们在屏幕上显示并使用 type()以显示它们是数字。

function love.load()
    window = {}
    window.x, window.y = love.graphics.getDimensions()

    enemies = {}
end

function newenemy()
    x = math.random(0, window.x)
    y = math.random(0, window.y)
    table.insert(enemies, {x = x, y = y, speed = 5})
end

function love.update(dt)
    newenemy()
    for i=#enemies, 1, -1 do
        local angle = math.atan((love.mouse.getY()-enemies[i]['y'])/(love.mouse.getX()-enemies[i]['x']))
        if love.mouse.getX() < enemies[i]['x'] then angle = angle + math.pi end
        enemies[i]['x'] = enemies[i]['x'] + math.cos(angle)*enemies[i]['speed']
        enemies[i]['y'] = enemies[i]['y'] + math.sin(angle)*enemies[i]['speed']
    end
end

function love.draw()
    for i=1, #enemies do 
        love.graphics.print('('..enemies[i]['x']..','..enemies[i]['y']..')')
        love.graphics.circle('fill', enemies[i]['x'], enemies[i]['y'])
    end 
end

为了显示实际数字,我一直在注释掉绘制圆圈的线条,并在我将光标移过屏幕时观察数字的变化。我真的不知道发生了什么。这段代码来自我正在编写的一个更大的(~400 行)脚本,我认为变量有一些错误,但它似乎仍然出现在 30 行代码中。

Error

main.lua:27: bad argument #4 to 'circle' (number expected, got no value)


Traceback

[C]: in function 'circle'
main.lua:27: in function 'draw'
[C]: in function 'xpcall'

注意错误

main.lua:27: bad argument #4

谈到第四个参数,其中你只提供三个

love.graphics.circle 的第四个参数是圆的半径

love.graphics.circle('fill', enemies[i]['x'], enemies[i]['y'], 10)