SKNode的位置被更改

时间:2014-02-14 01:13:03

标签: ios objective-c sprite-kit sknode

我有一个继承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

这篇文章描述了我的确切问题。

1 个答案:

答案 0 :(得分:0)

我发现的解决方案并不完美,但它现在正在运作。

我正在做的是在设置位置并将节点添加为子节点后设置物理体。

我在我的爆炸中添加了一个名为addPhysics的方法来设置物理体。

self.explosion.position = self.position;
[self.gameDelegate addNodeToLayer:self.explosion];
[self.explosion addPhysics];