如何在swift中使用SKConstraint

时间:2017-08-25 21:28:49

标签: ios swift sprite-kit

我的场景中有一个移动的摄像头,它始终跟随我的播放器。但我还有一些其他内容(屏幕控制),我想留在屏幕上的一个地方,但当相机移动时,控件正在移动到。我该怎么做呢我搜索了很多,找到了SKConstraint,但我找不到任何教程在swift 3中使用它。

我应该使用SKConstraint吗?如果是,我该如何使用它,如果不是,如何将控件始终保持在屏幕上的某个位置。

我也知道我可以在更新方法中更改控件的位置,但我不想这样做,因为屏幕控件上有很多,我尽量避免在更新方法中编写代码尽可能。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 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)