Lua表示这些变量是数字,但我无法使用它们在Love2d中制作圆形

编辑:糟糕的错误,只是忘记提供半径了,谢谢你的帮助:)

我对这种情况感到非常困惑。我相当确定代码的所有部分都能工作,但出于某种原因,xy坐标没有被Love2D打印出来,尽管它们显示在屏幕上并使用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行的代码中发生。

错误

main.lua:27: 调用'circle'时的第4个参数错误(期望数字,获得非值)

回溯

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

原文链接 https://stackoverflow.com/questions/70491497

点赞
stackoverflow用户2505965
stackoverflow用户2505965

注意错误信息:

main.lua:27: 参数 #4 错误

这表明第四个参数出现了问题,但是你只提供了三个参数。

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

love.graphics.circle('fill', enemies[i]['x'], enemies[i]['y'], 10)
2021-12-27 03:54:54