微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Love2d“'draw'的错误参数#2预期为Quad,为零”

如何解决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 举报,一经查实,本站将立刻删除。