尝试将 nil 与数字进行比较。 Cororna。

我即将完成我的游戏,但是遇到了一个错误:

attempt to compare nil with number game2.lua 444

我不知道如何修复这个问题,我已经尝试了很多方法,但都没有成功。我认为scrollSpace函数可能会引起这个错误,因为有时背景会以无法控制的速度滚动。这是我的代码:

function scrollSpace(self, event)
    if self.x < -900 then
        self.x = 800
    else
        self.x = self.x - self.speed
    end
end

这个函数控制着屏幕上的滚动。如果你们需要更多的代码,请回复我,我会很乐意添加请求的源代码。最后一个问题:有人知道下面的错误是什么意思吗:

attempt to compare nil with number

这是我的文件代码:

coin01 = display.newImage("coin02.png")
coin01.y = 100
coin01.x = 500
coin01.speed = math.random(2,6)
coin01.initY = mine1.y
coin01.amp = math.random(20,100)
coin01.angle = math.random(1,360)

physics.addBody(coin01, "static", {density=.1,bounce=0.1, friction=.2,radius=12})
screenGroup:insert(coin01)
end  -- end of create scene
**print "passed"

function scrollSpace(self, event)
    if self.x < -900 then
        self.x = 800
    else
        self.x = self.x - self.speed
    end
end**
function scene:enterScene(event)

coin01.enterFrame = coins
Runtime:addEventListener ("enterFrame",coin01)
end
function scene:exitScene(event)
***storyboard.purgeScene("start")
storyboard.purgeScene("restart")***
Runtime:removeEventListener ("enterFrame",coin01)

end

function scene:destroyScene(event)

end

scene:addEventListener("createScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener("destroyScene", scene)

return scene
点赞
用户2186639
用户2186639

很明显 self.x 是一个空值。如果你在别处移除它,然后 listener 在同一时间被调用,就没有 self.x 的值了。

你应该发布每一行你改变或创建 self 对象的地方。同时,也要发布监听器。

2013-07-13 14:06:38