【问题标题】:Love2d "bad argument #2 to 'draw' (Quad expected, got nil)"Love2d “'draw' 的错误论点 #2(预期为四,结果为零)”
【发布时间】:2021-07-22 04:07:24
【问题描述】:

我目前正在尝试制作一个飞扬的鸟副本,但在尝试在管道中生成时遇到了问题(当管道应该生成时,我收到以下错误:“bad argument #2 to '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),
        0, 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 的这种改变似乎使它为零。

【问题讨论】:

  • 你有没有试过在调用它之前打印你传递给draw的args,这些args在打印时会显示什么?也没有关于如何定义pipe 的信息,这将很难回答。请分享您使用的love2d 的版本。
  • 我现在已经添加了我正在使用的版本和完整的 Pipe 类。 (注意 Pipe 和 PipePair 是两个不同的类)
  • 我尝试打印 self.x 和 self.y,似乎 self.y 已定义,但 self.x 为零。我还尝试将 self.x 设置为整数而不是 VIRTUAL_WIDTH 仍然导致错误。
  • 您能否显示您调用Pipe:init 的位置,目前尚不清楚您的pipes 是如何创建的您显示的init 函数仅作用于现有管道(或管道类作为一个整体)它不会创建新的pipe。我还建议创建一个minimal reproducible example,这可能会帮助您自行找到问题的原因,它还可以消除在 cmets 中来回进行此操作的需要。

标签: lua love2d


【解决方案1】:

我刚刚想通了!

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。哇,我觉得我很愚蠢。

【讨论】:

    猜你喜欢
    • 2016-11-05
    • 2013-07-05
    • 2014-05-06
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-01-16
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多