love2d无法使用绘图功能移动矩形

时间:2016-01-12 20:49:45

标签: lua love2d

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

我在这里遇到一些问题可以帮助我,不久前我开始爱了,所以我想弄清楚。

main.lua:15:错误的论点#1来'画'(抽奖预期,没有了)

1 个答案:

答案 0 :(得分:0)

虽然@ Quiloos39自己想出来,以备将来参考:

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

有关Drawable的更多信息,请参阅Drawable in the love2d wiki

为了在玩家的当前位置绘制一个矩形,请使用:

function love.draw()
    love.graphics.rectangle("fill", Player.x, Player.y, Player.w, Player.h)
end

无需在love.graphics.rectangle中拨打love.load,因为它既不会提取也不会返回任何内容。但是,一旦您计划为播放器使用图像,最好在love.load中预先加载图像并在love.draw中使用它,如下所示:

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