public void Move(Vector2f direction) { if (direction != new Vector2f(0, 0)) { float distance = MathHelper.DistanceToPoint(direction, dependent.GetCenter()); if (distance > 2) { Vector2f directionTemp = new Vector2f(speed * (direction.X - dependent.GetCenter().X) / distance, speed * (direction.Y - dependent.GetCenter().Y) / distance); Vector2f newPos = shape.Position; newPos += directionTemp; shape.Position = newPos; } } }