В моей игре у меня есть узел внизу экрана, который id любит перемещаться вдоль оси x, используя touch. Я бы хотел, чтобы мой узел двигался влево или вправо в зависимости от направления перетаскивания, а также перемещался на том же расстоянии, что и перетаскивание. Поэтому, если пользователь перетащит слева направо (CGPoint(x: 200, y: 500)
на CGPoint(x:300, y: 500))
, узел переместит 100 вправо. Это то, что я пытался сделать, но это не сработало. Если у кого есть способ исправить это я действительно ценю этодвижущийся спрайт, основанный на длине/направлении перетаскивания
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
firstTouch = touchLocation
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
secondTouch = touchLocation
if gameStarted {
let change = secondTouch.x - firstTouch.x
let move = SKAction.moveToX(greenGuy.position.x + change, duration: 0.1)
greenGuy.runAction(move)
}
}
вместо 'moveToX' использовать' moveByX' – aramusss