Перемещение объекта по экрану с определенной скоростью. (Sprite Kit)

У меня есть объект, который должен двигаться вверх и вниз по экрану. При первом нажатии он перемещается вниз по экрану до конечной точки продолжительностью 3 секунды. Вы можете щелкнуть в любое время, чтобы остановить его движение вниз и заставить его двигаться вверх к другой конечной точке, снова в течение 3 секунд. Проблема с этим заключается в том, что если вы щелкаете, чтобы переместить объект вниз, а затем сразу же нажимаете снова, чтобы переместить его вверх, объект движется вверх, но с очень низкой скоростью, потому что его продолжительность составляет 3 секунды. (Надеюсь, это имеет смысл) Итак, я хочу прекратить использовать продолжительность, чтобы установить темп / скорость, с которой объект движется. Есть ли способ сказать, двигаться в точку x.y на пустой скорости? Спасибо. (Независимо от того, где находится объект и он должен двигаться, я хочу, чтобы он всегда двигался с одинаковой скоростью.)

Вот что я использую для перемещения объекта прямо сейчас:

func moveObject(){
    let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height / 1.8888888888 )
    let moveObject = SKAction.moveTo(endpoint, duration: 3.0 )
    let moveObjectSequence = SKAction.sequence([moveLine])
    Object.runAction(moveLineSequence)
}

Код после исправлений:

func dropLine(){
    if hookNumber == 1{
        let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height / 1.8888888888 )
        let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishLine.position,pointB:endpoint,speed:300.0))
        let moveLineSequence = SKAction.sequence([moveLine])
        fishLine.runAction(moveLineSequence)
    }
}

func dropHook(){
    if hookNumber == 1{
        let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height - 2030)
        let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishHook.position,pointB:endpoint,speed:300.0))
        let moveLineSequence = SKAction.sequence([moveLine])
        fishHook.runAction(moveLineSequence)
            hookNumber = 2
    }
}

func raiseLine(){
    if hookNumber == 2{
        let endpoint = CGPoint(x: self.size.width / 2 , y: 3050 )
        let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishLine.position,pointB:endpoint,speed:300.0))
        let moveLineSequence = SKAction.sequence([moveLine])
        fishLine.runAction(moveLineSequence)
    }
}

func raiseHook(){
    if hookNumber == 2{
        let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height - 3 )
        let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishHook.position,pointB:endpoint,speed:300.0))
        let moveLineSequence = SKAction.sequence([moveLine])
        fishHook.runAction(moveLineSequence)
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос