在 Corona 中清除场景时出现错误

需要你的帮助!

我使用一个名为 loader.lua 的“剪辑场景”来重新加载场景时,会出现以下错误:

?:0: attempt to index a nil value
stack traceback:
           ?: in function '_isWithinBounds'
           ?: in function '?'
           ?: in function <?:449>
           ?: in function <?:205>

loader.lua :

local composer = require("composer")

local scene = composer.newScene()

function scene:create( event )
    local sceneGroup = self.view
    composer.removeScene("game")

end

function scene:show( event )
    local sceneGroup = self.view
    composer.gotoScene("game")

end

function scene:hide( event )
    local sceneGroup = self.view

end

function scene:destroy( event )
    local sceneGroup = self.view

end
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )

return scene

最后是调用函数:

function buttonEvent( event )
            if ( "ended" == event.phase ) then
                print("Clicked")
                composer.gotoScene("loader")
            end
        end

尝试取消定时器并将所有内容添加到 sceneGroup self.view 以清除场景,但是每次都会出现这个错误!

任何帮助将不胜感激! 谢谢!

编辑:

去掉了以下内容:

composer.removeScene("game")

这会调用一个空值,现在我的错误消失了,但我得到了一个空黑屏:/

并在 loader.lua 的 scene:show 函数中添加了

local sceneGroup = self.view
if (event.phase == did) then
    composer.gotoScene("game")
end

我试图将

composer.recycleOnSceneChange

设置为 True 和 False,但它只改变了调试屏幕输出..

composer.recycleOnSceneChange = false

时,调试屏幕不显示任何内容

但是当

composer.recycleOnSceneChange = true

时,在 game.lua 中一切都在 scene:create 函数中设置,游戏逻辑在 scene:show 中。

点赞