如何在 spritekit 中将节点定位在屏幕中央?

use*_*898 3 ios sprite-kit

在 spritekit 中,是否有一种快速的方法可以将节点定位在屏幕的中心而无需手动计算坐标?

Ron*_*huk 5

如果您的场景有一个anchorPoint,CGPoint(x: 0.5, y: 0.5)那么您添加到场景中的任何对象都将自动放置在屏幕中央。

如果您的场景的锚点为 CPoint.zero(左下角),您可以通过设置object.position = CGPoint(x: self.size.width / 2, y: self.size.height/ 2)self 是场景的位置来设置对象的位置


cra*_*777 5

除了 Ron Myschuk 答案之外,您还可以使用场景框架属性。我认为这种方式是最灵活的,因为无论锚点如何,它都会起作用。

例如

// Center
yourNode.position = CGPoint(x: frame.midX, y: frame.midY) 

// Slightly off centre
yourNode.position = CGPoint(x: frame.midX - 100, y: frame.midY - 100) 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助