经过许多小时的搜索和测试,我能够通过将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