我想做的是让一个SkspiteNode从左到右再从后移动。这发生在触摸上。
我有这个密码:

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
        for touch in touches{
            touchLocation = touch.locationInNode(self)
            mainGuy.position.x = touchLocation.x;
        }
    }

这很管用。但是当我把我的手指放在屏幕的右边,而主控在屏幕的左边时,它就会移到我的手指上。这不是我想要的。
当我在屏幕上移动手指时,它需要从主控的当前位置“跟随”我的手指。
我该怎么做?

最佳答案

做一些类似的事情:

var touchesBeganPosition: CGPoint?

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
  touchesBeganPosition = touches.first?.locationInNode(self)
}

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
  for touch in touches {
    touchLocation = touch.locationInNode(self)
    if let touchesBeganPosition = touchesBeganPosition {
      mainGuy.position.x = touchLocation.x - touchesBeganPosition.x
    }
  }
}

当然,这是未经测试的,但应该足以得到一般的想法。

关于swift - 滑动 Action 即可移动skspriteNode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34812174/

10-11 09:19