2017-02-11 22 views
0

Я пытаюсь сделать спрайт перемещаться влево при касании, а затем двигаться вправо в следующий раз, когда пользователь прикасается.Изменение направления спринта при постукивании?

Я видел некоторый код, который я думаю, будет работать отлично, однако я не слишком уверен, как определить «isMovingleft»

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    ship.removeAllActions() 

    if isMovingleft == true { 
     let left = SKAction.moveBy(x: 500, y: 0, duration: 5) 
     ship.run(left) 
    } 
    else { 
     let right = SKAction.moveBy(x: -500, y: -900, duration: 5) 
     ship.run(right) 
    } 
    isMovingleft = !isMovingleft 


} 

ответ

1
enum Direction: Int { 
    case left = 0 
    case right 
} 

var direction: Direction? 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

    ship.removeAllActions() 

    switch direction ?? .left { 
    case .left: 
     ship.run(SKAction.moveBy(x: 500, y: 0, duration: 5)) 
     direction = .right 
    case .right: 
     ship.run(SKAction.moveBy(x: -500, y: -900, duration: 5)) 
     direction = .left 
    } 
}