我只是想使用composer.showOverlay()
来显示游戏结束、暂停菜单等。
我正在使用composer.showOverlay("gameoverlay",options)
在场景结束时调用覆盖(计时器变为零等),但我收到一个错误,告诉我我试图调用错误的模块,比如我的pause.lua格式不正确看起来像这个
local composer = require( "composer" )
local scene = composer.newScene()
local myData = require( "myData" )
-- -----------------------------------------------------------------------------------------------------------------
-- All code outside of the listener functions will only be executed ONCE unless "composer.removeScene()" is called.
-- -----------------------------------------------------------------------------------------------------------------
-- local forward references should go here
-- -------------------------------------------------------------------------------
-- "scene:create()"unction scene:hide( event )
function scene:hide( event )
local sceneGroup = self.view
local phase = event.phase
local parent = event.parent --reference to the parent scene object
if ( phase == "will" ) then
-- Call the "resumeGame()" function in the parent scene
end
end
-- By some method (a "resume" button, for example), hide the overlay
-- composer.hideOverlay( "fade", 400 )
scene:addEventListener( "hide", scene )
return scene
local sceneGroup = self.view
-- Initialize the scene here.
-- Example: add display objects to "sceneGroup", add touch listeners, etc
local background = display.newRect( 0, 0, display.actualContentHeigh, display.actualContentWidth
bacground:setFillColor( black ) )
-- -------------------------------------------------------------------------------
-- Listener set)
-- -------------------------------------------------------------------------------
return scene
这远不是我使用过的唯一版本的gameoverlay.lua。我还尝试使用作曲家场景的正常设置。场景:创建场景:显示场景:隐藏场景:破坏。
仍然得到了相同的错误,看起来像
Attempting to load scene from invalid scene module (gameoverlay.lua). Did you forget to return the scene object at the end of the scene module? (e.g. 'return scene')
Attempting to load scene from invalid scene module (gameoverlay.lua). Did you forget to return the scene object at the end of the scene module? (e.g. 'return scene')
您的代码中有两个返回,因此创建sceneGroup的部分将不会运行。其次,我认为Lua抛出了一个错误,而这个模块没有被加载,所以场景永远不会返回,因此您也会出现错误。
我试图通过composer.showOverlay()运行的文件gameoverlay.lua是一个空文件,我正在处理的gameoverlay.lua被放在错误的目录中Major facepalm。
如果使用composer.gotoScene()运行,我会得到一个错误,说"sceneName"是一个零值(因为它是空的)。
解决方案请确保该文件不是空的,并且需要composer,并且具有正确的composer场景设置。