我有一个继承SKNode
的对象,我将其位置设置为某一点。我将节点添加到图层,其位置仍设置为相同的点。节点出现在(0,0),稍后在其中一个动作的完成块中,我看到它的位置变为(0,0)。
SKNode
对象有1个子(粒子发射器),其位置为(0,0)。 (注意粒子发射器的位置应为(0,0),节点本身(发射器的父级)应位于我设置的任何位置。
为什么会发生这种情况的任何想法?
编辑:
我添加了
- (void)setPosition:(CGPoint)position
{
[super setPosition:position];
}
到我的班级并在那里设一个断点。当我设置位置时,断点会第一次被击中,但永远不会被击中。不知何故,这个位置仍然是(0,0)......
编辑2:
SKNode position not working, always going to default 0,0
这篇文章描述了我的确切问题。
答案 0 :(得分:0)
我发现的解决方案并不完美,但它现在正在运作。
我正在做的是在设置位置并将节点添加为子节点后设置物理体。
我在我的爆炸中添加了一个名为addPhysics
的方法来设置物理体。
self.explosion.position = self.position;
[self.gameDelegate addNodeToLayer:self.explosion];
[self.explosion addPhysics];