2012-06-06 3 views
0

я пытаюсь переместить одну из моего физического тела к различному XAxis столкновениястолкновения в короне

local function onCollision(self,event) 
      if event.other.name == "block" then 
       if (event.other.x - self.x) > 210 then 
        self:removeSelf() 
        self = nil 
        transition.cancel(event.other.move) 
        event.other:removeSelf() 
        event.other = nil 
        gameOver() 
       else 
        print("else") 
        transition.cancel(event.other.move) 
        event.other.x = 1024 
        updateScore(1) 
       end 
      end 
     end 
     ball.collision = onCollision 
     ball("collision",ball) 

но это говорит

"Cannot translate an object before collision is resolved" 

Как я могу сделать это?

ответ

1

Вы должны указать задержку кадра, если хотите перемещать сталкивающиеся объекты.

Заменить

event.other.x = 1024 

с

local translateObject = function() event.other.x = 1024 end 
timer.performWithDelay(1,translateObject,1) 
+0

Я сделал это тоже, но что происходит, он сначала переходит в другое состояние и требует некоторой задержки, если затем возвращается к тому условию, когда состояние все еще происходит. Любой другой способ сделать это? –

+0

Хм! Попробуйте дать 'if (event.phase ==" end "), затем верните конец' в свою функцию onCollision. – SatheeshJM

+0

Это также не работает. Предоставление мне того же предупреждения. :( –

0

transition.to (мяч, {х = object.x, у = object.x, время = 0})

я нашел ответ на вопрос.

Смежные вопросы