SpriteKit 中的默认锚点是 (0.5, 0.5),它是节点/精灵的中心。 (0, 0) 是左下角,(1, 1) 是右上角。看着这张照片 https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Sprites/Sprites.html#//apple_ref/doc/uid/TP40013043-CH9-SW36.
选择节点的锚点后,可以将其视为坐标系的原点,坐标系的范围是节点的框架大小。位置偏移量由子级锚点及其父级锚点计算/影响。
例如,(红色)父节点rect
大小为 (100, 100),有一个(绿色)子节点child
大小为 (50, 50)。将子级位置设置为父级坐标系中的 (-25, 25) 将得到以下结果。
// parent node
let parent = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(100.0, 100.0))
parent.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
self.addChild(parent)
// child node
let child = SKSpriteNode(color: UIColor.greenColor(), size: CGSizeMake(50.0, 50.0))
child.zPosition = 1
child.position = CGPointMake(-parent.size.width/4, parent.size.height/4) // (-25, 25))
parent.addChild(child)
更多SpriteKit位置和锚点的实验可以找到here http://www.garethelms.org/2014/06/help-with-spritekit-position-and-anchorpoint/.