private void Init(IColorPreset colorPreset)
        {
            container.Anchor = AnchorType.TopRight;
            container.Pivot  = PivotType.TopRight;
            container.X      = -16f;
            container.Y      = -16f;
            container.Width  = 400f;
            container.Height = 140f;

            mask = container.CreateChild <UguiSprite>("mask", 0);
            {
                mask.Anchor     = AnchorType.Fill;
                mask.RawSize    = Vector2.zero;
                mask.Position   = Vector2.zero;
                mask.SpriteName = "box";
                mask.Color      = Color.black;

                imageDisplay = mask.CreateChild <MapImageDisplay>("imageDisplay", 0);
                {
                    imageDisplay.Anchor  = AnchorType.Fill;
                    imageDisplay.RawSize = Vector2.zero;
                }
                gradient = mask.CreateChild <UguiSprite>("gradient", 1);
                {
                    gradient.Anchor     = AnchorType.Fill;
                    gradient.Offset     = new Offset(0f, -22f, 0f, 0f);
                    gradient.SpriteName = "gradation-bottom";
                    gradient.Color      = new Color(0f, 0f, 0f, 0.9f);
                }
                title = mask.CreateChild <Label>("title", 2);
                {
                    title.Anchor = AnchorType.BottomStretch;
                    title.SetOffsetHorizontal(16f);
                    title.Y        = 92f;
                    title.Height   = 30f;
                    title.IsBold   = true;
                    title.WrapText = true;
                    title.FontSize = 18;
                }
                artist = mask.CreateChild <Label>("artist", 3);
                {
                    artist.Anchor = AnchorType.BottomStretch;
                    artist.SetOffsetHorizontal(16f);
                    artist.Y        = 70f;
                    artist.Height   = 30f;
                    artist.WrapText = true;
                    artist.FontSize = 16;
                }
                randomButton = mask.CreateChild <ControlButton>("random", 4);
                {
                    randomButton.Anchor   = AnchorType.BottomLeft;
                    randomButton.X        = 36f;
                    randomButton.Y        = 36f;
                    randomButton.Size     = new Vector2(48f, 48f);
                    randomButton.IconName = "icon-random";
                    randomButton.IconSize = 24f;

                    randomButton.OnTriggered += model.RandomizeMusic;
                }
                prevButton = mask.CreateChild <ControlButton>("prev", 5);
                {
                    prevButton.Anchor   = AnchorType.Bottom;
                    prevButton.X        = -56f;
                    prevButton.Y        = 36f;
                    prevButton.Size     = new Vector2(48f, 48f);
                    prevButton.IconName = "icon-backward";
                    prevButton.IconSize = 24f;

                    prevButton.OnTriggered += model.PrevMusic;
                }
                playButton = mask.CreateChild <ControlButton>("play", 6);
                {
                    playButton.Anchor   = AnchorType.Bottom;
                    playButton.Y        = 36f;
                    playButton.Size     = new Vector2(48f, 48f);
                    playButton.IconName = "icon-play";
                    playButton.IconSize = 32f;

                    playButton.OnTriggered += model.TogglePlaying;
                }
                nextButton = mask.CreateChild <ControlButton>("next", 7);
                {
                    nextButton.Anchor   = AnchorType.Bottom;
                    nextButton.X        = 56f;
                    nextButton.Y        = 36f;
                    nextButton.Size     = new Vector2(48f, 48f);
                    nextButton.IconName = "icon-forward";
                    nextButton.IconSize = 24f;

                    nextButton.OnTriggered += model.NextMusic;
                }
                timeBar = mask.CreateChild <TimeBar>("timebar", 8);
                {
                    timeBar.Anchor = AnchorType.BottomStretch;
                    timeBar.Pivot  = PivotType.Bottom;
                    timeBar.SetOffsetHorizontal(0f);
                    timeBar.Y      = 0f;
                    timeBar.Height = 8f;
                }
            }

            OnEnableInited();
        }
예제 #2
0
        private void Init()
        {
            var bg = CreateChild <UguiSprite>("bg");

            {
                bg.Anchor     = AnchorType.Fill;
                bg.SpriteName = "circle-320";
                bg.Color      = ColorPreset.DarkBackground;
                bg.Offset     = Offset.Zero;
            }
            meterSprite = CreateChild <UguiSprite>("meter");
            {
                meterSprite.Anchor     = AnchorType.Fill;
                meterSprite.Offset     = Offset.Zero;
                meterSprite.SpriteName = "circle-320";
                meterSprite.ImageType  = Image.Type.Filled;
                meterSprite.SetRadial360Fill(Image.Origin360.Top);

                meterGradient = meterSprite.AddEffect(new GradientEffect());
                meterGradient.Component.direction = UIGradient.Direction.Vertical;
                meterGradient.Component.color1    = Color.white;
                meterGradient.Component.color2    = HexColor.Create("A0A0A0");
                meterGradient.Component.offset    = 0.75f;
            }
            rangeDisplay = CreateChild <RankCircleRange>("ranges");
            {
                rangeDisplay.Anchor = AnchorType.Fill;
                rangeDisplay.Offset = new Offset(18f);
            }
            var mask = CreateChild <UguiSprite>("mask");

            {
                mask.Anchor     = AnchorType.Fill;
                mask.Offset     = new Offset(28f);
                mask.Color      = ColorPreset.DarkBackground;
                mask.SpriteName = "circle-320";
                mask.AddEffect(new MaskEffect());

                mapThumb = mask.CreateChild <MapImageDisplay>("thumb");
                {
                    mapThumb.Anchor = AnchorType.Fill;
                    mapThumb.Offset = Offset.Zero;
                    mapThumb.Color  = new Color(1f, 1f, 1f, 0.25f);
                }
            }
            rankGlowSprite = CreateChild <UguiSprite>("rank-glow");
            {
                rankGlowSprite.Size       = new Vector2(256f, 256f);
                rankGlowSprite.SpriteName = "glow-128";
                rankGlowSprite.Alpha      = 0.625f;
            }
            rankLabel = CreateChild <Label>("rank");
            {
                rankLabel.IsBold   = true;
                rankLabel.FontSize = 128;

                rankShadowEffect = rankLabel.AddEffect(new ShadowEffect());
                rankShadowEffect.Component.style = ShadowStyle.Outline8;
            }
            var accBg = CreateChild <UguiSprite>("acc-bg");

            {
                accBg.Position   = new Vector3(0f, -84f);
                accBg.Size       = new Vector2(280f, 64f);
                accBg.SpriteName = "glow-128";
                accBg.Color      = Color.black;
            }
            accuracyLabel = CreateChild <Label>("accuracy");
            {
                accuracyLabel.Position = accBg.Position;
                accuracyLabel.FontSize = 22;
            }

            OnEnableInited();
        }
예제 #3
0
        private void Init()
        {
            hoverSprite.Depth      = 1;
            hoverSprite.Anchor     = AnchorType.Fill;
            hoverSprite.RawSize    = new Vector2(28f, 30f);
            hoverSprite.Color      = Color.black;
            hoverSprite.SpriteName = "glow-parallel-64";
            hoverSprite.ImageType  = Image.Type.Sliced;
            hoverSprite.AddEffect(new FlipEffect()).Component.horizontal = true;

            mask = CreateChild <UguiSprite>("mask", 0);
            {
                mask.Anchor     = AnchorType.Fill;
                mask.RawSize    = Vector2.zero;
                mask.Color      = HexColor.Create("2A313A");
                mask.SpriteName = "parallel-64";
                mask.ImageType  = Image.Type.Sliced;

                mask.AddEffect(new MaskEffect());
                mask.AddEffect(new FlipEffect()).Component.horizontal = true;

                imageDisplay = mask.CreateChild <MapImageDisplay>("imageDisplay", 0);
                {
                    imageDisplay.Anchor  = AnchorType.Fill;
                    imageDisplay.RawSize = Vector2.zero;

                    imageGradient = imageDisplay.CreateChild <UguiSprite>("gradient", 100);
                    {
                        imageGradient.Anchor     = AnchorType.Fill;
                        imageGradient.RawSize    = Vector2.zero;
                        imageGradient.SpriteName = "gradation-left";
                        imageGradient.Color      = new Color(0f, 0f, 0f, 0.5f);
                    }
                }
                progressBar = mask.CreateChild <UguiProgressBar>("progress", 1);
                {
                    progressBar.Anchor = AnchorType.BottomStretch;
                    progressBar.Pivot  = PivotType.Bottom;
                    progressBar.SetOffsetHorizontal(22f, 0f);
                    progressBar.Height = 6f;
                    progressBar.Y      = 0f;

                    progressBar.Background.Color = new Color(0f, 0f, 0f, 0.5f);
                    progressBar.Foreground.SetOffsetTop(2f);
                }
                titleLabel = mask.CreateChild <Label>("title", 2);
                {
                    titleLabel.Anchor = AnchorType.TopStretch;
                    titleLabel.Pivot  = PivotType.Top;
                    titleLabel.SetOffsetHorizontal(20f, 32f);
                    titleLabel.Y         = -8f;
                    titleLabel.Height    = 30f;
                    titleLabel.IsBold    = true;
                    titleLabel.FontSize  = 22;
                    titleLabel.Alignment = TextAnchor.UpperLeft;
                    titleLabel.WrapText  = true;

                    var shadow = titleLabel.AddEffect(new ShadowEffect()).Component;
                    shadow.style          = ShadowStyle.Outline;
                    shadow.effectDistance = Vector2.one;
                    shadow.effectColor    = new Color(0f, 0f, 0f, 0.5f);
                }
                artistLabel = mask.CreateChild <Label>("artist", 3);
                {
                    artistLabel.Anchor = AnchorType.BottomStretch;
                    artistLabel.Pivot  = PivotType.Bottom;
                    artistLabel.SetOffsetHorizontal(32f, 20f);
                    artistLabel.Y         = 8f;
                    artistLabel.Height    = 30f;
                    artistLabel.Alignment = TextAnchor.LowerLeft;
                    artistLabel.WrapText  = true;

                    var shadow = artistLabel.AddEffect(new ShadowEffect()).Component;
                    shadow.style          = ShadowStyle.Outline;
                    shadow.effectDistance = Vector2.one;
                    shadow.effectColor    = new Color(0f, 0f, 0f, 0.5f);
                }
            }

            hoverInAni = new Anime();
            hoverInAni.AnimateColor(color => hoverSprite.Color = color)
            .AddTime(0f, () => hoverSprite.Color)
            .AddTime(0.25f, () => MapSelection.Background.Value.Highlight)
            .Build();
            hoverInAni.AnimateFloat(alpha => imageGradient.Alpha = alpha)
            .AddTime(0f, () => imageGradient.Alpha)
            .AddTime(0.25f, 0f)
            .Build();

            hoverOutAni = new Anime();
            hoverOutAni.AnimateColor(color => hoverSprite.Color = color)
            .AddTime(0f, () => hoverSprite.Color)
            .AddTime(0.25f, Color.black)
            .Build();
            hoverOutAni.AnimateFloat(alpha => imageGradient.Alpha = alpha)
            .AddTime(0f, () => imageGradient.Alpha)
            .AddTime(0.25f, 0.5f)
            .Build();

            OnEnableInited();
        }