当前位置: 首页 > 知识库问答 >
问题:

love2D错误:错误参数#2到“矩形”(需要数字,得到零)

宫高义
2023-03-14

我不知道我做错了什么。。。我得到了球员的错误。draw()函数。它所说的不好的争论是在爱情中。图样矩形()方法。这意味着v.x是一个糟糕的论点。但它应该起作用。v.x和v.y都应该工作。因为它访问表或数组中元素的字段,对吗?有人能告诉我我做错了什么,以及如何解决这个问题吗?非常感谢!这是我的代码:

require "scripts.player"

width = love.graphics.getWidth()

block = {}
block.width = 60
block.height = 10
block.speed = 150
block.timer = 0
block.timerLim = math.random(1,2)
block.spawnX = math.random(0, width - player.width)

function block.spawn(x,y)
    table.insert(block, {x = x, y = y})
end

function block.move(dt)
    for i,v in ipairs(block) do
        v.y = v.y + block.speed * dt
    end
end

function block.draw()
    for i,v in ipairs(block) do 
        love.graphics.setColor(255,0,255)
        love.graphics.rectangle("fill", v.x, v.y, block.width block.height)
    end
end

function block.spawnHandler(dt)
    block.timer = block.timer + dt
    if block.timer > block.timerLim then
        block.spawn(spawnX, -10)
        block.timer = 0
        block.timerLim = math.random(1,2)
        block.spawnX = math.random(0, width - block.width)
    end
end

-- Parent Functions --

function DRAW_BLOCK()
    block.draw()
end

function UPDATE_BLOCK(dt)
    block.move(dt)
    block.spawnHandler(dt)
end

共有1个答案

商弘义
2023-03-14

在函数block.spawnHandler中,您指的是block.spawnX而不是spawnX

由于spawnX不存在,它的值是nil,它进入spawn函数,并被设置为坐标的x值,然后进入矩形,这是一个错误的参数。

你可以在这里阅读更多关于这一点以及如何防止它再次叮咬你的内容:https://www.lua.org/pil/13.4.1.html

简而言之,lua真的很奇怪,直到你通过让对不存在的变量的访问抛出错误而不是返回nil来“修复”它,以及大约800个类似的东西。一旦你“修复”了所有这些东西,你就有了一些仅仅是奇怪的东西,不再是lua了。

 类似资料:
  • 我有一个问题在这里我不知道如何解决这个问题,本尝试任何我知道解决这个仍然没有解决方案,请帮助 我有2个模块 主要的卢阿: 外部模块dog.lua: 堆栈回溯: 现在还在想在这里做什么。这是唯一阻碍我项目的事情。请帮忙,谢谢:)

  • 当尝试ViewChild时,我会得到错误。错误为“未提供'opts'的参数。” @ViewChild都给出了错误。 ts(11,2):错误TS2554:应为2个参数,但得到1。

  • 这是一个Lua脚本,用于Corona SDK中的一个游戏。一开始(旧代码)效率很低,我不得不手动创建每道数学题,在其他人的帮助下(新代码),所以我得到了答案。 在控制台中,我现在看到了这个错误:

  • 编辑:我把单引号改成双引号,短绒没有抱怨。 我把这个放到jsonlint.com,我得到了这个错误: 其他json棉绒也有类似的结果。最初,数值是空的,所以我用单引号将它们括起来,以消除< code>jq错误: 但我还是为JQ买的。 我没有看到任何未定义的键,我错过了什么? 我还在网上看到一篇参考文章,不允许对密钥使用裸数字,公平地说,任何具有非字符串密钥的JSON都不应该通过测试吗?

  • 第二个抛出了一个错误(),声称当我直接在函数中输入字符串时,它没有字符串,这让我非常恼火。然而,这种错误并非总是发生——其他时候,它工作得很完美,似乎没有任何原因。其次,当我在上面说的语句中输入时,它现在认为错误与语句有关,例如: 在我的程序中,我有多个重复的代码示例,这些代码具有不同的变量/值,我已经多次验证它们都是相同的。 这可能是什么错误,为什么?

  • 以下是代码: 我不是一个有经验的“编剧”,所以我真的不知道如何解决这个问题。