我有以下代码,用于创建 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
?
最佳答案
这适用于其他可能难以理解的人:
Sprite 的 anchor 是该 Sprite 的子级的局部坐标系开始的位置。因此,如果 anchor 是 Sprite 的中心,则子节点的 (0,0) 对应于父 Sprite 的中心。
对于CGRect
,您通常指定CGRect
的原点(作为矩形的左下角),然后指定尺寸。
由于您可能使用CGRect
创建SKShapeNode
或SKPhysicsBody
椭圆或矩形,因此您应该对其进行偏移,因此矩形的中心与 Sprite 的中心匹配,使形状和物理体处于预期位置。
关于ios - 如何对齐 SKPhysicsBody 和 SKShapeNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279375/