我似乎无法在任何地方找到如何实现相机捏缩放SpriteKit。
在我的GameScene中,我似乎可以在相机上运行放大操作:
let cameraNode = SKCameraNode()
cameraNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
addChild(cameraNode)
camera = cameraNode
let zoomInAction = SKAction.scale(to: 0.5, duration: 1)
cameraNode.run(zoomInAction)
但我似乎无法弄清楚如何将其转换为缩放缩放功能
答案 0 :(得分:0)
这是一个适用于我的解决方案,使用手势识别器:
class GameScene: SKScene {
var previousCameraScale = CGFloat()
override func sceneDidLoad() {
let pinchGesture = UIPinchGestureRecognizer()
pinchGesture.addTarget(self, action: #selector(pinchGestureAction(_:)))
view?.addGestureRecognizer(pinchGesture)
}
@objc func pinchGestureAction(_ sender: UIPinchGestureRecognizer) {
guard let camera = self.camera else {
return
}
if sender.state == .began {
previousCameraScale = camera.xScale
}
camera.setScale(previousCameraScale * 1 / sender.scale)
}
}
您可以轻松定义相机比例的最小值和最大值,并在需要时使用分数上的界限。