使用 UIPanGestureRecognizer 在 SpriteKit 场景中平移相机

问题描述

我正在尝试使用 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...