我在 LOVE2D 中的四边形如何具有零值?
How does my quad in LOVE2D have a nil value?
我正在 LOVE2D 的游戏中进行第二次加电,我希望它做的是增加它最后一次碰撞的桨。但是,它给了我一个错误:
Error
powerups/PaddleGrow.lua:64: bad argument #2 to 'draw' (Quad expected, got nil)
Traceback
[C]: in function 'draw'
powerups/PaddleGrow.lua:64: in function 'render'
main.lua:630: in function 'draw'
[C]: in function 'xpcall'
我的四边形在 draw 函数中为 nil 值,尽管我实际上是在 Util 函数中分配了它:
--[[
Simple function for making powerups.
]]
function GenerateQuadsPowerups(atlas)
local x = 0
local y = 0
local counter = 1
local quads = {}
for i = 1, 3 do
quads[counter] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
end
return quads
end
我的绘制函数在依赖项中有这些帧和纹理,我添加了一些道具。我的相框是 table 的 3 次加电,但我的第二次加电不想显示。
function PaddleGrow:render()
if self.inPlay then
love.graphics.draw(textures['powerups'], frames['powerups'][2], self.x, self.y)
end
end
为什么会变成这样?
您的代码似乎正在分配 quads
table 的相同索引。
counter
在函数的开头定义了一次为 1,而您正在执行一个 for 循环,只将新的四边形分配给 1,三次。
你是说 quads[i] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
吗?
--[[
Simple function for making powerups.
]]
function GenerateQuadsPowerups(atlas)
local x = 0
local y = 0
local quads = {}
for i = 1, 3 do
quads[i] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
end
return quads
end
我正在 LOVE2D 的游戏中进行第二次加电,我希望它做的是增加它最后一次碰撞的桨。但是,它给了我一个错误:
Error
powerups/PaddleGrow.lua:64: bad argument #2 to 'draw' (Quad expected, got nil)
Traceback
[C]: in function 'draw'
powerups/PaddleGrow.lua:64: in function 'render'
main.lua:630: in function 'draw'
[C]: in function 'xpcall'
我的四边形在 draw 函数中为 nil 值,尽管我实际上是在 Util 函数中分配了它:
--[[
Simple function for making powerups.
]]
function GenerateQuadsPowerups(atlas)
local x = 0
local y = 0
local counter = 1
local quads = {}
for i = 1, 3 do
quads[counter] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
end
return quads
end
我的绘制函数在依赖项中有这些帧和纹理,我添加了一些道具。我的相框是 table 的 3 次加电,但我的第二次加电不想显示。
function PaddleGrow:render()
if self.inPlay then
love.graphics.draw(textures['powerups'], frames['powerups'][2], self.x, self.y)
end
end
为什么会变成这样?
您的代码似乎正在分配 quads
table 的相同索引。
counter
在函数的开头定义了一次为 1,而您正在执行一个 for 循环,只将新的四边形分配给 1,三次。
你是说 quads[i] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
吗?
--[[
Simple function for making powerups.
]]
function GenerateQuadsPowerups(atlas)
local x = 0
local y = 0
local quads = {}
for i = 1, 3 do
quads[i] = love.graphics.newQuad(x, y, 8, 8, atlas:getDimensions())
end
return quads
end