2017-08-25 56 views
0

我的場景中有一個移動攝像頭,它始終跟隨我的玩家。但是我也有一些其他的內容(屏幕控制),我想留在屏幕上的一個地方,但是當相機移動時,控件正在移動到。我將如何去做這件事。我搜索了很多,發現SKConstraint,但我找不到任何教程在swift 3中使用它。如何在swift中使用SKConstraint

我應該使用SKConstraint嗎?如果是的話,我該如何使用它,如果不是的話,我怎麼把控件始終保持在屏幕上的某個位置。

我也知道我可以更改控件在更新方法中的位置,但我不想這麼做,因爲屏幕控件上有很多控件,並且我試圖避免在update方法中編寫代碼,如下所示:儘可能多。

任何幫助將不勝感激,謝謝!

回答

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) 
+0

非常感謝您的幫助,所以訣竅是將節點添加到SKCameraNode。 – Rishi