问题描述
我正在尝试使用 UIPanGestureRecognizer 在 SpriteKit 场景周围平移 SKCameraNode。平移手势需要两个手指。这是我当前控制此操作的代码:
func moveCamera(_ translation: CGPoint) {
let newTranslation = skScene.convertPoint(fromView: translation)
cameraNode.position += -newTranslation
}
还有我的 IBAction 检测平移识别器事件:
@IBAction func panCamera(_ panRecogniser: UIPanGestureRecognizer) {
let translation = panRecogniser.translation(in: canvasView)
if panRecogniser.state == .changed {
canvasView.moveCamera(translation)
}
}
moveCamera
在覆盖整个屏幕的 SKView 的子类中调用。只有一个 SKScene。
相机完全按照我想要的方式平移,但每次我开始一个新的平移手势时,位置都会回到屏幕的左上角。是什么导致这种情况发生?
我已经尝试过 here 的解决方案,但它们要么不支持两指平移,要么不以与我的手指相同的速度平移,这是我从上面的代码。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)