anchor.diff:    }
   
     bool _speedOverEqualMaxSpeed() {
  -    return (speedX >= maxSpeed || speedY >= maxSpeed);
  +    //return (speedX >= maxSpeed || speedY >= maxSpeed);
  +    return (_speedVector.x >= maxSpeed || _speedVector.y >= maxSpeed);
     }
   
     bool _speedUnderEqualMinSpeed() {
  -    return (speedX <= minSpeed || speedY <= minSpeed);
  +    //return (speedX <= minSpeed || speedY <= minSpeed);
  +    return (_speedVector.x <= minSpeed || _speedVector.y <= minSpeed);
     }
   
     void _checkSpeedLimits() {
  
positive.code: 
      _checkDestination();
  
      speedX += _accelerationDirection * accelerationX * time;
      speedY += _accelerationDirection * accelerationY * time;
  
      x = x +
          (directionSystem.mainDirection.x * speedX +
              _context.game.physics.gravityDirectionSystem.mainDirection.x *
                  _context.game.physics.garvitySpeed) *
              time;
      y = y +
          (directionSystem.mainDirection.y * speedY +
              _context.game.physics.gravityDirectionSystem.mainDirection.y *
                  _context.game.physics.garvitySpeed) *
              time;
  
      return true;
  
    }
  
    /**
  
negative.code:   /**
     * Horizontal speed of the sprite.
     * */
    num get speedX => _speedVector.x;
  
    void set speedX(num speed) {
      _speedVector = new StageXL.Vector(speed, _speedVector.y);
    }
  
    /**
     * Vertical speed of the sprite
     * */
    num get speedY => _speedVector.y;
  
    void set speedY(num speed) {
      _speedVector = new StageXL.Vector(_speedVector.x, speed);
    }
  
    StageXL.Vector _speedVector = new StageXL.Vector.zero();
  
    /**
     * Horizontal acceleration of the sprite.
     */
    //num accelerationX = 0;
  
    /**
     * Vertical acceleration of the sprite.
     */
    //num accelerationY = 0;
  
    StageXL.Vector _accelerationVector = new StageXL.Vector.zero();
  
    /**
     * The maximum speed limit for the Sprite.
  