我的场景中有一个移动的摄像头,它始终跟随我的播放器。但我还有一些其他内容(屏幕控制),我想留在屏幕上的一个地方,但当相机移动时,控件正在移动到。我该怎么做呢我搜索了很多,找到了SKConstraint
,但我找不到任何教程在swift 3中使用它。
我应该使用SKConstraint
吗?如果是,我该如何使用它,如果不是,如何将控件始终保持在屏幕上的某个位置。
我也知道我可以在更新方法中更改控件的位置,但我不想这样做,因为屏幕控件上有很多,我尽量避免在更新方法中编写代码尽可能。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
您可以使用SKConstraint
让相机跟随角色。
首先,创建一个摄影机节点和一个英雄,并将它们添加到场景
let cameraNode = SKCameraNode()
let hero = SKSpriteNode(imageNamed: "Spaceship")
addChild(hero)
camera = cameraNode
addChild(cameraNode)
接下来,创建一个约束并将其分配给摄像机节点的constraints
属性
let range = SKRange(constantValue:0)
let constraint = SKConstraint.distance(range, to: hero)
cameraNode.constraints = [constraint]
最后,如果您的控件或标签需要位于相对于相机的固定位置,您可以将它们添加到相机节点
let label = SKLabelNode(text: "Score: 123")
// Position the label relative to the camera node
label.position = CGPoint(x: 100, y: 100)
cameraNode.addChild(label)