Lua love2d可以';使用draw函数不移动矩形

Lua love2d可以';使用draw函数不移动矩形,lua,love2d,Lua,Love2d,我在这里遇到了一些问题,可能会帮助我不久前开始love2d,所以我正在努力解决它 main.lua:15:错误的参数#1到“draw”(Drawable预期,得到零)尽管@Quiloos39自己解决了这个问题,供将来参考: 这是因为love.graphics.rectangle不返回任何内容-它只在指定的坐标处绘制一个矩形love.graphics.draw需要一个Drawable作为其第一个参数Drawables比矩形稍微复杂一些:它们可以使用love.graphics.newSomethin

我在这里遇到了一些问题,可能会帮助我不久前开始love2d,所以我正在努力解决它


main.lua:15:错误的参数#1到“draw”(Drawable预期,得到零)

尽管@Quiloos39自己解决了这个问题,供将来参考:

这是因为
love.graphics.rectangle
不返回任何内容-它只在指定的坐标处绘制一个矩形
love.graphics.draw
需要一个
Drawable
作为其第一个参数
Drawable
s比矩形稍微复杂一些:它们可以使用
love.graphics.newSomething
创建,其中
Something
可以是以下任意一种:

  • (在0.8.0中删除)
有关
Drawable
s的更多信息,请参阅


要仅在玩家的当前位置绘制矩形,请使用:

function love.load()
    Player = {
            x = 1, 
            y = 1,
            w = 50,
            h = 50
    }

    Player.self = love.graphics.rectangle("fill", Player.x, Player.y, Player.w, Player.h)    
end


function love.draw()
    love.graphics.draw(Player.self, Player.x, Player.y) --15 line
end
无需在
love.load
中调用
love.graphics.rectangle
,因为它既不会绘制也不会返回任何内容。但是,一旦您计划为玩家使用图像,最好先在
love.load中加载图像,然后在love.draw中使用图像,如下所示:

function love.draw()
    love.graphics.rectangle("fill", Player.x, Player.y, Player.w, Player.h)
end
我知道了,对不起。
function love.load()
    Player = { 
        x = 1, 
        y = 1, 
        w = 50, 
        h = 50, 
        image = love.graphics.newImage("img/player.png")
    }
end

function love.draw()
    love.graphics.draw(Player.image, Player.x, Player.y)
end