     delta = Math.sqrt((deltaX ** 2) + (deltaY ** 2))
 
     defer = WhenJS.defer()
+    type = if @entity.has('ViewportFixed')
+      'viewport'
+    else
+      settings.x = deltaX
+      settings.y = deltaY
+      'linear'
+
     @entity.choreography(
       [
-        type: 'viewport'
+        type: type
         x: settings.x
         y: settings.y
         maxSpeed: settings.speed

      @entity.unbind(eventName, eventHandler)
      p = (sequence) =>
        @alternatePath = null
        sequenceFunction.apply(this, args)(sequence)
      @currentSequence = sequence = Math.random()
      @alternatePath = WhenJS(p(sequence))
        .catch =>
          @alternatePath
    @entity.bind(eventName, eventHandler)


  _moveAir: (settings) ->
    defaults =
      speed: @entity.speed

    if @entity.has('ViewportFixed')
      defaults.x = @entity.x + Crafty.viewport.x
      defaults.y = @entity.y + Crafty.viewport.y

    settings = _.defaults(settings, defaults)

