I can\'t change the position of a SKSpriteNode by changing
self.position = newPosition;
It doesn\'t work anymore if it has a physicsBody.
I had a problem like this where I tried to update position
inside didBeginContact:
, but it was not having any effect, I think because the physics simulation immediately clobbers the value.
My solution was to cache the new position in a property on my scene and then update the position of the node next time update:
was called on my scene.
[SKAction moveTo:newPosition duration:0.0]
worked for me, too, and there was no popping. I haven't decided yet which is more elegant.