code: @Override
      public void update(double extrp, int x, int y, double speed)
      {
          // This will avoid bug on huge speed (lines out of screen)
          final double speedWrap = 2.56 * factH / 0.0084;
          final double wrapedSpeed = UtilMath.wrapDouble(speed, -speedWrap, speedWrap);
  
          // Move each line, depending of its id and size
          for (int lineNum = 0; lineNum < parallaxsNumber; lineNum++)
          {
              // CHECKSTYLE IGNORE LINE: MagicNumber
              this.x[lineNum] += 0.2 * lineNum * wrapedSpeed * 0.042;
              // CHECKSTYLE IGNORE LINE: MagicNumber
              x2[lineNum] += wrapedSpeed * 0.25;
  
              // When line has arrived to its border
              final double secondLine = this.x[1];
              // CHECKSTYLE IGNORE LINE: MagicNumber
              if (secondLine >= 2.56 * factH || secondLine <= -2.56 * factH)
              {
                  for (int j = 0; j < parallaxsNumber; j++)
                  {
                      this.x[j] = 0.0;
                      x2[j] = 0.0;
                  }
              }
              this.y[lineNum] = lineNum + y + (double) mainY;
          }
      }
docs: /*
  BackgroundComponent