我已经实现了缩放功能,但是我用来移动播放器的节点,指向播放器移动方向的箭头保持相同的大小,并且我不知道如何按比例缩放它们,所以如果我放大时,按钮会变小,并靠近播放器以停留在屏幕上,反之亦然。
这是我编写的允许缩放的代码:
{{ Auth::user()->age }}
@objc func handlePinch(sender: UIPinchGestureRecognizer) {
guard sender.view != nil else { return }
if sender.state == .began || sender.state == .changed {
sender.view?.transform = (sender.view?.transform.scaledBy(x: sender.scale, y: sender.scale))!
sender.scale = 1.0
}
}
答案 0 :(得分:1)
您在使用SpriteKit吗?
如果是这样,您可能可以在相机节点规模上实现“缩放”功能:https://developer.apple.com/documentation/spritekit/skcameranode/getting_started_with_a_camera
@objc func handlePinch(sender: UIPinchGestureRecognizer) {
guard sender.view != nil else {
return
}
if sender.state == .began || sender.state == .changed {
self.camera.xScale = sender.scale
self.camera.yScale = sender.scale
}
}
苹果医生说:
由于相机是节点,因此您可以像定义其他节点一样定义其在场景中的位置。动作,物理和GameplayKit行为也可以应用于摄影机节点。使用摄像机节点渲染场景时,将发生以下情况: 渲染场景,以便将摄像机节点的原点放置在场景的中间。 相机节点的xScale,yScale和zRotation属性的倒数将应用于场景中的所有节点。
您可能应该反转发送者比例值:self.camera.xScale = -sender.scale