【问题标题】:Position of SKNode being changedSKNode 的位置正在改变
【发布时间】:2014-02-14 01:13:03
【问题描述】:

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

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

【问题讨论】:

  • 你能贴出你用来移动节点的代码吗?
  • 我有一个包含爆炸对象的导弹对象。 self.explosion.position = self.position;执行那条线后,爆炸的位置正确,但绘制在 (0,0)
  • 我认为这与物理学有关。我在其他地方使用了相同的代码,它可以正常工作,唯一的区别是另一个对象没有物理体,而这个有。
  • 向我们展示您将 setPosition 方法应用于节点的所有代码行。
  • 我从不调用set position,我只是使用self.explosion.position = self.position

标签: ios objective-c sprite-kit sknode


【解决方案1】:

我找到的解决方案并不完美,但目前可以使用。

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

我为我的爆炸​​添加了一个名为addPhysics 的方法,它设置了物理体。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多