예제 #1
0
  /**
   * Initializes the Slider data type with images and dimensions.
   *
   * @param container the game container
   * @param circleSize the map's circleSize value
   * @param beatmap the associated beatmap
   */
  public static void init(GameContainer container, float circleSize, Beatmap beatmap) {
    containerWidth = container.getWidth();
    containerHeight = container.getHeight();

    diameter = (104 - (circleSize * 8));
    diameter = (diameter * HitObject.getXMultiplier()); // convert from Osupixels (640x480)
    int diameterInt = (int) diameter;

    followRadius = diameter / 2 * 3f;

    // slider ball
    if (GameImage.SLIDER_BALL.hasSkinImages()
        || (!GameImage.SLIDER_BALL.hasSkinImage() && GameImage.SLIDER_BALL.getImages() != null))
      sliderBallImages = GameImage.SLIDER_BALL.getImages();
    else sliderBallImages = new Image[] {GameImage.SLIDER_BALL.getImage()};
    for (int i = 0; i < sliderBallImages.length; i++)
      sliderBallImages[i] =
          sliderBallImages[i].getScaledCopy(diameterInt * 118 / 128, diameterInt * 118 / 128);

    GameImage.SLIDER_FOLLOWCIRCLE.setImage(
        GameImage.SLIDER_FOLLOWCIRCLE
            .getImage()
            .getScaledCopy(diameterInt * 259 / 128, diameterInt * 259 / 128));
    GameImage.REVERSEARROW.setImage(
        GameImage.REVERSEARROW.getImage().getScaledCopy(diameterInt, diameterInt));
    GameImage.SLIDER_TICK.setImage(
        GameImage.SLIDER_TICK.getImage().getScaledCopy(diameterInt / 4, diameterInt / 4));

    sliderMultiplier = beatmap.sliderMultiplier;
    sliderTickRate = beatmap.sliderTickRate;
  }