在滑动操作上移动skspriteNode

时间:2016-01-15 13:28:56

标签: swift

我想要做的是让SkspiteNode从左到右移动。这发生在触摸上。

我有这段代码:

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

这很有效。但当我在屏幕右侧移动手指并且主屏幕位于屏幕左侧时,它移动到我的手指。这不是我想要发生的事情。

当我将手指移到屏幕上时,需要按照“&#39;我的手指来自mainGuy的当前位置。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

做类似的事情:

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
    }
  }
}

这当然没有经过考验,但应该足以得到一般的想法。