       motionX = (@_forcedSpeed.x / 1000.0) * fd.dt
       motionY = (@_forcedSpeed.y / 1000.0) * fd.dt
 
-      shipSpeed = @_forcedSpeed.x + @vx
-      @_updateFlyingSpeed shipSpeed, fd.dt
+      shipSpeedX = @_forcedSpeed.x + @vx
+      shipSpeedY = @_forcedSpeed.y + @vy
+      @_updateFlyingSpeed shipSpeedX, fd.dt
+
+      r = @rotation
+      newR = shipSpeedY / 20
+      if r < newR
+        @rotation += 1
+      else if r > newR
+        @rotation -= 1
 
       @x += motionX
       @y += motionY

      if @hit('Edge') or @hit('Solid')
        @x -= motionX
        @y -= motionY

      # still hitting an object? then we where forced in
      # and are crashed (squashed probably)

    @secondaryWeapon = undefined
    @superUsed = 0
    @weaponsEnabled = yes
    @currentRenderedSpeed = 0

  _updateFlyingSpeed: (newSpeed, dt) ->
    if newSpeed < 50
      correction = newSpeed / 2
    else
      correction = 25 + ((newSpeed / 700) * 100)

    if @currentRenderedSpeed > correction
      @currentRenderedSpeed -= 4
    else if @currentRenderedSpeed < correction
      @currentRenderedSpeed += 4
    if @currentRenderedSpeed < 0
      @currentRenderedSpeed = 0

    w = @currentRenderedSpeed

    h = w / 3
    @backFire.attr(
      x: @x - w + 9
      y: @y + 20 - (h // 2)
      w: w
      h: h
    )

  start: ->
    @backFire = Crafty.e('2D, WebGL, shipEngineFire')
