如何解决LOVE2D中的四边形如何具有nil值?
我正在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'
虽然我实际上是在Util函数中为其分配的,但我的Quad在draw函数中为nil值:
--[[
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,atlas:getDimensions())
end
return quads
end
我的画图函数在Dependencies中有这个框架和纹理,我添加了powerups作为一种。我的帧是一张3张道具的桌子,但我的第二副道具却不想显示。
function PaddleGrow:render()
if self.inPlay then
love.graphics.draw(textures['powerups'],frames['powerups'][2],self.x,self.y)
end
end
为什么会变成这样?
解决方法
您的代码似乎分配了quads
表的相同索引。
counter
在函数的开头被定义为1,并且您正在执行一次for循环,该循环仅将新quad分配为1,三次。
您是说quads[i] = love.graphics.newQuad(x,y,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,atlas:getDimensions())
end
return quads
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。