Gire o sprite por toque com uma velocidade de rotação limitada

Estou tentando fazer meu spriteNode girar sobre o toque do dedo.

Até agora eu posso fazer isso, mas o que eu quero é que meu nó tenha uma "velocidade de rotação". Então, calculo o comprimento do ângulo e defino um tempo diferente para girar com ele (se o arco for longo, levará tempo ...).

Aqui está o meu código:

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
    _isTouched = true
    for touch in touches {
        let location:CGVector = touch.locationInNode(self) - miner.position

        miner.weaponRotation = location.angle() - CGFloat(M_PI_2)
    }
}

var wantedRotation: CGFloat {
    get { return _wantedRotation }
    set(rotation) {
        if rotation > CGFloat(M_PI) || rotation < -CGFloat(M_PI) {
            _wantedRotation = CGFloat(M_PI) + rotation % CGFloat(M_PI)
        }
        else {
            _wantedRotation = rotation
        }

        removeActionForKey("rotation")
        let arc: CGFloat = CGFloat(abs(_wantedRotation - zRotation))
        let shortestArc: CGFloat = min(arc, CGFloat(M_PI * 2.0) - arc)
        runAction(SKAction.rotateToAngle(_wantedRotation, duration: NSTimeInterval(shortestArc / CGFloat(M_PI) * rotationSpeed), shortestUnitArc: true), withKey: "rotation")
    }
}

O principal problema é que adicionar váriosSKAction&nbsp;para o nó bloquear o movimento.

Gostaria de saber qual poderia ser a solução? Se possível, usando o SKAction, pois eu gostaria de evitar fazer uma atualização em cada quadro para calcular o movimento (mas se é a única solução ...)

NOTA APÓS RESPOSTA

Ao receber respostas, li novamente a documentação do SpriteKit e encontreiesta nota clara :

Quando você não deve usar ações

Embora as ações sejam eficientes, há um custo para criá-las e executá-las. Se você estiver fazendo alterações nas propriedades de um nó em cada quadro de animação e essas alterações precisarem ser recalculadas em cada quadro, é melhor fazer as alterações diretamente no nó e não usar ações para fazê-lo. Para mais informações sobre onde você pode fazer isso no seu jogo, consulte Processamento de cena avançado.