前一个场景没有被移除。

我对 Corona 相当新,我似乎找不到解决我的问题的方法:

我在我的游戏中有多个关卡,我正在使用故事板,当玩家点击下一关按钮时,他们会进入到 level2 场景,场景从 storyboard.removeALL() 开始,但这不会删除上一个场景,我的背景出现问题。

function nextlevel(event)
    storyboard.gotoScene( "level2" )
end

function win ()
  nextlevelbutton = display.newRoundedRect( display.contentCenterX, 285, 120, 30, 3 )
  nextlevelbutton:setFillColor( 61/255,61/255,61/255 )
  nextleveltxt = display.newText( { text = "Next Level", font = native.systemFontBold,    fontsize = 20, x= display.contentCenterX, y = 285 } )
  nextlevelbutton:addEventListener( "tap", nextlevel )

  end

这一切都在 scene:enterScene 函数内。

这是 level2 场景的开头:

local storyboard = require( "storyboard" )
local scene = storyboard.newScene()

storyboard.removeAll( )

我试图将 nextlevel 事件放在 win 函数中,但什么也没有发生。

谢谢

点赞
用户3090678
用户3090678

这应该会帮到你:

http://www.coronalabs.com/blog/2013/04/02/cleaning-up-display-objects-andlisteners/

如果你正在加载一个菜单并且你想从所有其他类中删除 EVERYTHING,请使用:

storyboard.purgeAll()

这应该停止所有侦听器并删除所有对象。

另外一件事是添加此代码:

function scene:didExitScene( event )
storyboard.purgeScene( "sceneyouareleaving" )
end
scene:addEventListener( "didExitScene" )

你只需要调用该函数即可完成 :)

希望这可以帮助你!

2013-12-14 18:51:48
用户2964945
用户2964945

另外,由于你的“搞砸”的背景可能暗示了一些问题,请记得将你创建的所有对象添加到视图组中:

function scene:createScene(event)
    local group = self.view
    local params = event.params

当你创建对象时,例如:

background = display.newImageRect("gfx/bg.png", 1425, 900)
background:setReferencePoint(display.TopLeftReferencePoint)
background.x = 0
background.y = 0
background:setFillColor(0, 255, 255)

请记得将它添加到组中:

group:insert(background)
2013-12-14 20:09:05
用户3095844
用户3095844

我总算是解决了它。我觉得我把函数和组的位置搞错了。总之,谢谢你的帮助!

2013-12-15 13:48:32