title: Rotate sprite by touch with a limited rotation speed
body: <p>I'm trying to make my spriteNode rotate over finger touch.</p>
  <p>So far I can do it, but what I want is that my node have a &quot;rotation speed&quot;.
  So I calculate the length of the angle then set a different timing to rotate with it (if the arc is long, it will take time...).</p>
  <p>Here's my code :</p>
  <pre><code>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 &gt; CGFloat(M_PI) || rotation &lt; -CGFloat(M_PI) {
              _wantedRotation = CGFloat(M_PI) + rotation % CGFloat(M_PI)
          }
          else {
              _wantedRotation = rotation
          }
          
          removeActionForKey(&quot;rotation&quot;)
          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: &quot;rotation&quot;)
      }
  }
  </code></pre>
  <p><strong>The main problem is that adding several <code>SKAction</code> to the node block the movement.</strong></p>
  <p>I would like to know what could be the solution ? If possible by using SKAction, since I would like to avoid doing an update on each frame to calculate the movement (but if it's the only solution...)</p>
  <p><strong>NOTE AFTER ANSWER</strong></p>
  <p>As I received answers, I read again the SpriteKit documentation and found <a href="https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/AddingActionstoSprites/AddingActionstoSprites.html#//apple_ref/doc/uid/TP40013043-CH11-SW13" rel="noreferrer">this clear note</a> :</p>
  <blockquote>
  <p><strong>When You Shouldn’t Use Actions</strong></p>
  <p>Although actions are efficient, there is a cost to creating and executing them. If you are making changes to a node’s properties in every frame of animation and those changes need to be recomputed in each frame, you are better off making the changes to the node directly and not using actions to do so. For more information on where you might do this in your game, see Advanced Scene Processing.</p>
  </blockquote>