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

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

main.lua:15:错误参数 #1 到"绘制"(可绘制的预期,得到零(

虽然@Quiloos39自己想通了,但供将来参考:

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

  • 帆布
  • 帧缓冲(在 0.8.0 中删除(
  • 图像
  • 网孔
  • 粒子系统
  • 精灵批次
  • 发短信
  • 视频

有关 Drawable s 的更多信息,请参阅 love2d wiki 中的 Drawable。


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

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

love.load中调用love.graphics.rectangle,因为它既不会绘制也不会返回任何东西。但是,一旦您计划为播放器使用图像,明智的做法是在 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

最新更新