【发布时间】:2013-11-29 06:03:49
【问题描述】:
我有以下代码创建一个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?
【问题讨论】:
-
路径点是相对的还是绝对的?
-
假设它们是绝对的。
-
对于形状节点和身体形状,它们必须是相对的(即在节点坐标空间中)
-
你找到答案了吗?我注意到物理似乎与我的 SKShapeNode 子类上的实际形状有偏差,而且我太不理解 LearnCocos2D 的评论了……
-
您的子节点使用相对于父节点的坐标空间,因此在您的计算中,您必须指定子节点在父节点的坐标空间中的位置。例如,如果父节点位于 (0,0),则子节点的位置将正是您期望的位置。但是如果父节点在 (10,0),那么子节点在世界中的坐标将偏移 (10,0)。因此,即使您指定孩子位于 (20,10),如果父母位于 (10,0),那么孩子将位于 (30,10)。明白了吗?
标签: ios objective-c sprite-kit skphysicsbody