2

我有以下代码创建一个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

4

1 回答 1

3

这适用于其他可能难以理解的人:

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

在 a 的情况下CGRect,您通常指定原点CGRect(作为矩形的左下角),然后指定尺寸。

由于您可能正在使用 来创建一个SKShapeNodeSKPhysicsBody椭圆或矩形CGRect,因此您应该偏移它,因此矩形的中心与精灵的中心相匹配,这样形状和物理主体就在预期的位置。

于 2014-03-17T09:33:26.440 回答