經過許多小時的搜索和測試,我能夠通過將UIPanGestureRecognizer和單獨的測試添加到現場的相機視圖來獲得工作解決方案。使用相機移動的能力可能是更好的解決方案,因爲我可以用手指在地圖上滾動並單擊SPSpriteNodes。使用UIPan選項只是移動了我的視圖,我可以將它拖出屏幕。此外,它並沒有出現我可以與SKSpriteNodes進行交互,該SKSpriteNodes附加到被拖動的視圖。我將在我使用的下面發佈相機代碼。現在我只需要弄清楚如何添加約束!
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch : UITouch = touches.first!
let positionInScene = touch.location(in: self)
let previousPosition = touch.previousLocation(in: self)
let translation = CGPoint(x: (positionInScene.x) - (previousPosition.x), y: (positionInScene.y) - (previousPosition.y))
panForTranslation(translation)
//print(boardCamera.position)
}
func panForTranslation(_ translation: CGPoint) {
let position = boardCamera.position
let aNewPosition = CGPoint(x: position.x - translation.x, y: position.y - translation.y)
boardCamera.position = aNewPosition
}
你說的應該很好。你能詳細說明「我沒有辦法添加對象......我可以交互」 – Fluidity
你會向讀者展示你的代碼嗎?這將幫助他們瞭解目前您採取的方法。 – halfer
聽起來像他們使用UIKit而不是SpriteKit – Knight0fDragon