我想做的是让一个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/