ios - 如何对齐 SKPhysicsBody 和 SKShapeNode?

标签 ios objective-c sprite-kit skphysicsbody

我有以下代码,用于创建 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 正是我想要它在屏幕上显示的位置(视觉上)。

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

如何对齐 SKShapeNodeSKPhysicsBody

最佳答案

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

Sprite 的 anchor 是该 Sprite 的子级的局部坐标系开始的位置。因此,如果 anchor 是 Sprite 的中心,则子节点的 (0,0) 对应于父 Sprite 的中心。

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

由于您可能使用CGRect创建SKShapeNodeSKPhysicsBody椭圆或矩形,因此您应该对其进行偏移,因此矩形的中心与 Sprite 的中心匹配,使形状和物理体处于预期位置。

关于ios - 如何对齐 SKPhysicsBody 和 SKShapeNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279375/

相关文章:

ios - UIPanGestureRecognizer 有时无法在 iOS 7 上运行

objective-c - 仅在一个 View Controller 上允许自动旋转

ios - 将触摸从 UIButton 的 subview 传递回 UIButton

ios - 重新激活 NSLayoutConstraint 在解包可选时发现 nil

ios - CVOpenGLESTextureCacheCreateTextureFromImage 处的 OpenGLES 3 错误 -6683

ios - UITextField 在 secureTextEntry 切换后有尾随空格

ios - UIImageView 设置为 imageWithData 忽略 contentMode

swift - iOS 8 中的 SpriteKit : should I cache my SKNodes?

swift - 在不再次运行的情况下更改 touch 内部的 node.name?

swift - 如何让一个 Sprite 节点围绕另一个节点旋转? (还有一条线)