2015-12-18 2 views
0

Когда объект1 сталкивается с объектом2, я хочу, чтобы объект2 исчез, не затрагивая положение или скорость объекта1. Объект1 является динамическим, а object2 статичным. Таким образом, это будет как бонусный объект, поражающий мой основной объект, и бонусный объект должен исчезнуть, не затрагивая ничего.Два объекта сталкиваются, нужно исчезнуть, не влияя на положение другого

Вот мой код функции столкновения:

local function onCollision(self,event) 
     --if my object hits a bonus object 
     if(event.object2.name == "bonus")then 
      --self:setLinearVelocity(0,horizontal) 
      --I have tried the above method but every so often I receive an error 
      event.object2:removeSelf() 
      score = score*2 
      scoreText.text = score --sets the new score 
      Runtime:removeEventListener("enterFrame", event.object2)  
     else     
      composer.gotoScene("restart" ) 
      Runtime:removeEventListener("touch", onObjectTouch)  
     end 
    end 

ответ

0

UPDATE:

Попробуйте установить ваши бонусные объекты в качестве датчиков, либо в этой области, или при их инициализации.

event.object2.isSensor = true 

ИЛИ

object2.isSensor = true 

Это должно позволить физике & обнаружения столкновения на Object2 без какого-либо влияния на другие объекты.

+0

Это не ответит на вопрос –

+0

Да, объект2 исчезает, однако при столкновении он отключает объект1, что является проблемой –

+0

'object2.isSensor = true' было бы наиболее полезно, если оно применяется при создании объекта. Если вы примените его во время проверки столкновения, он может не вступить в силу только после обнаружения столкновения, и он уже затронул объект1 –