如何对齐SKPhysicsBody和SKShapeNode?

时间:2013-11-29 06:03:50

标签: ios objective-c sprite-kit skphysicsbody

我有以下代码,用于创建SKShapeNodeself.tiles)。

CGMutablePathRef path = CGPathCreateMutable();
.... //Some stuff that creates a path

self.tiles = [SKShapeNode node];
[self addChild:self.tiles];

self.tiles.path = path;
self.tiles.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:path];

但似乎创建的物理体与屏幕上创建的形状不对齐.SKShapeNode正是我想要它在屏幕上的视觉效果。

我不知道物理机构到底在哪里。

如何对齐SKShapeNodeSKPhysicsBody

1 个答案:

答案 0 :(得分:3)

这适用于可能无法理解的其他人:

精灵的锚点,是该精灵的孩子的局部坐标系开始的地方。因此,如果锚点是精灵的中心,那么(0,0)子节点对应于父精灵的中心。

如果是CGRect,您通常会指定CGRect的原点(作为矩形的左下角),然后指定尺寸。

由于您可能正在使用SKShapeNode创建SKPhysicsBodyCGRect椭圆或矩形,因此您应该将其偏移,因此矩形的中心与精灵的中心匹配,以便形状和物理体都在预期的位置。