我有以下代码,用于创建SKShapeNode
(self.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正是我想要它在屏幕上的视觉效果。
我不知道物理机构到底在哪里。
如何对齐SKShapeNode
和SKPhysicsBody
?
答案 0 :(得分:3)
这适用于可能无法理解的其他人:
精灵的锚点,是该精灵的孩子的局部坐标系开始的地方。因此,如果锚点是精灵的中心,那么(0,0)子节点对应于父精灵的中心。
如果是CGRect
,您通常会指定CGRect
的原点(作为矩形的左下角),然后指定尺寸。
由于您可能正在使用SKShapeNode
创建SKPhysicsBody
或CGRect
椭圆或矩形,因此您应该将其偏移,因此矩形的中心与精灵的中心匹配,以便形状和物理体都在预期的位置。