Sprite Kit协调奇怪的行为

时间:2014-07-21 03:17:53

标签: ios sprite-kit

SKSprintNode child1 = [[SKSprintNode alloc] init];
child1.position = CGPointMake(1,0);
[centreNode addChild:child1]

假设我可以以 centreNode 为中心点逆时针旋转90度(使用旋转动作)。现在我观察到一些奇怪的行为:

1)轮换后,我尝试获得 child1 的位置,它仍然是(1,0)而不是(0,1)< /强>

2)轮换后,在 didBeginContact 中,我将位置(0,2)的另一个 child2 添加到 centreNode ,然后在下一帧的更新方法中,我尝试获取 child2 的位置,它变为(2,0)(自动为我旋转! )

3)轮换后,在一个动作完成块(而不是 didBeginContact )中,我添加位置(0,2) child2 >进入 centreNode ,然后在下一帧的更新方法中,我尝试得到 child2 的位置,它的位置没有改变,仍然(0 ,2)(没有自动服务?)

有人可以解释一下吗?似乎Sprit-Kit的物理引擎会以某种方式自动转换坐标......

1 个答案:

答案 0 :(得分:0)

该正常行为,位置和旋转是相应父母位置的偏移。如果只有父母的位置/轮换发生变化,孩子的位置/轮换不会改变。

使用sknode convert methods将位置转换为其他节点的坐标系。