首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在冲突中更改场景-无法删除-场景() perspective.lua:尝试将零与数字进行比较

在冲突中更改场景-无法删除-场景() perspective.lua:尝试将零与数字进行比较
EN

Stack Overflow用户
提问于 2014-12-05 15:46:58
回答 1查看 595关注 0票数 0

当物体与物体发生碰撞时,我试图改变场景。只是为了得到信息,当我在按钮上使用一个侦听器时,它工作得很好!现场最清洁,没有问题的“物理”了。

场景: CH1-SAH-A01

代码语言:javascript
复制
    function onCollision(event)
        if (event.phase=="began") then
            if (event.object1.myName=="hero" and event.object2.myName=="start_point") then              
                composer.gotoScene("CH1-SPR-A01", "fade", 500)
            end
        elseif (event.phase=="ended") then
            if (event.object1.myName=="hero" and event.object2.myName=="ground") then   
            end
         end
    end

我从这里开始物理学:

代码语言:javascript
复制
function scene:show( event )

local sceneGroup = self.view
local phase = event.phase

if ( phase == "will" ) then
      -- Called when the scene is still off screen (but is about to come on screen).
    camera:setBounds(display.contentWidth/2,4200-display.contentWidth*0.5,display.contentHeight-1500,-220)
    camera.damping=1
    physics.start()
    camera:track()
    setHeroPropreties()

然后,当场景离开时:

代码语言:javascript
复制
function scene:hide( event )
  local sceneGroup = self.view
  local phase = event.phase    
   if ( phase == "will" ) then        
    timer.performWithDelay( 1000, function() physics.stop();end )
    Runtime:removeEventListener("enterFrame", ShowCharacters)
    Runtime:removeEventListener("collision", onCollision)
    slideOffSensor:removeEventListener( "touch", handleSlideOff )
    composer.removeScene("CH1-SAH-A01")
   elseif ( phase == "did" ) then          

   end
end

销毁功能是:

代码语言:javascript
复制
function scene:destroy( event )

    local sceneGroup = self.view
    local camera = self.view
    package.loaded[physics] = nil
    physics = nil
end

我试图在函数physics.stop()中添加一个计时器,但没有结果。碰撞后,虚拟控制台监视器中出现了一些“错误”:

在当前和目的地场景中,我不使用transition.to(),而且我有以下错误:

错误:无法在冲突解决之前转换对象

我在physics.addbody中添加了一个计时器到我的“英雄”和start_point (在目标场景中),并且仍然有以下错误:

错误:当世界被锁定并在数字处理过程中(例如在碰撞事件中)时,无法调用physics.addBody()

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-07 11:31:38

在日冕中,在碰撞结束之前,你不能改变与碰撞有关的物体的任何东西。此外,在冲突正在进行时,不能调用physics.stop()。您需要在更改场景之前使用timer.performWithDelay ()标志或延迟,直到冲突结束为止。

这将在此链接中的“重要”部分中介绍:http://docs.coronalabs.com/daily/guide/physics/collisionDetection/index.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27319627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档