/** * 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; }