【问题标题】:ERROR: Attempt to remove an object that's already been removed错误:尝试移除已移除的对象
【发布时间】:2013-07-06 16:21:26
【问题描述】:

重启游戏时出现这个错误:

(错误:尝试移除已从舞台中移除或其父/祖先组已移除的对象。)

我在碰撞调用的函数中使用 jet:removeSelf()(代码如下)

function explode()
Runtime:removeEventListener("enterFrame", moveJet)  
Runtime:removeEventListener("enterFrame", wrap)
jet:removeSelf()
end

local function onCollision(event)
    if event.phase == "began" and gameIsActive == true then
        local obj1 = event.object1; 
        local obj2 = event.object2; 

    if obj1.name == "jetplayer" and obj2.name == "BCloud1" then   
        explode()
        end
    end
end
    Runtime:addEventListener( "collision", onCollision )

所以游戏第一次运行正常,但重新启动时就不行了。关于如何解决问题的任何想法?

【问题讨论】:

  • 你在使用故事板吗?
  • 是的,我正在使用故事板

标签: lua coronasdk


【解决方案1】:

尝试在您转到另一个场景后删除您的场景,这样它将创建所有对象,包括当您重新启动游戏或将喷气机对象放入组时的值,当组被删除时,您会删除喷气机对象太

【讨论】:

  • im using "storyboard.removeScene( "game" )" in gameover.lua 同样的错误 + 我在 mail.lua 文件中使用 "storyboard.purgeOnSceneChange = true"
  • 你确定explode()函数会导致错误,因为我认为你的代码很好
  • 是的,我看起来是这样的,它第二次调用“jet:removeSelf()”,你会得到这个:错误:尝试删除已经从舞台上删除的对象或其父/祖先组已被删除。
  • 如果是这样,那么您需要从 createScene 重新初始化 jet 对象,因为我认为它正在尝试删除它,并且 jet 对象已经从第一次删除
  • 喷气机的代码在 'function scene:createScene( event )....end' 代码块中
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
相关资源
最近更新 更多