如何解决Love2d“'draw'的错误参数#2预期为Quad,为零”
我目前正在尝试制作一个飞扬的小鸟副本,但在尝试在管道中生成时遇到了问题(当管道应该生成时,我收到以下错误:“错误的参数 #2 为 'draw'(预期为 Quad,得到零)").
导致问题的函数如下(它们位于三个不同的类中):
Pipe = Class{}
local PIPE_IMAGE = love.graphics.newImage('FlappyBirdPipe.png')
PIPE_SCROLL = -60
PIPE_WIDTH = 20
PIPE_HEIGHT = 160
function Pipe:init(orientation,y)
self.x = VIRTUAL_WIDTH
self.y = y
self.width = PIPE_IMAGE:getWidth()
self.height = PIPE_HEIGHT
self.orientation = orientation
end
function Pipe:render()
love.graphics.draw(PIPE_IMAGE,self.x,(self.orientation == 'top' and self.y + PIPE_HEIGHT or self.y),1,(self.orientation == 'top' and -1 or 1))
end
function PipePair:update(dt)
if self.x > -PIPE_WIDTH then
self.x = self.x - PIPE_SCROLL * dt
self.pipes['lower'].x = self.X
self.pipes['upper'].x = self.x
else
self.remove = true
end
end
如果有什么不清楚或我遗漏了一些重要信息,我很乐意提供更多信息(我是 Stack Overflow 的新手,所以我不确定这里的一切是如何工作的)。
(我在 vscode 中使用的是 love2d 11.3 版)
编辑:我指出错误是我如何从 PipePair 类的更新函数更新 Pipe 类中的 self.x。不知何故,self.x 的这种改变似乎使它为零。
解决方法
我刚刚想通了!
function PipePair:update(dt)
if self.x > -PIPE_WIDTH then
self.x = self.x - PIPE_SCROLL * dt
self.pipes['lower'].x = self.X
self.pipes['upper'].x = self.x
else
self.remove = true
end
end
self.pipes['lower'].x = self.X 上有一个大写的 X。这么久以来,我一直在试图弄清楚这一切都是由于 X。哇,我觉得自己太愚蠢了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。