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