mirror of
https://github.com/ppy/osu.git
synced 2025-01-12 19:03:08 +08:00
Fix crashing TestSceneMedalOverlay (#7388)
Fix crashing TestSceneMedalOverlay Co-authored-by: Dean Herbert <pe@ppy.sh>
This commit is contained in:
commit
8dceaa6e8b
@ -41,105 +41,114 @@ namespace osu.Game.Overlays
|
|||||||
|
|
||||||
private SampleChannel getSample;
|
private SampleChannel getSample;
|
||||||
|
|
||||||
|
private readonly Container content;
|
||||||
|
|
||||||
public MedalOverlay(Medal medal)
|
public MedalOverlay(Medal medal)
|
||||||
{
|
{
|
||||||
this.medal = medal;
|
this.medal = medal;
|
||||||
RelativeSizeAxes = Axes.Both;
|
RelativeSizeAxes = Axes.Both;
|
||||||
|
|
||||||
Children = new Drawable[]
|
Child = content = new Container
|
||||||
{
|
{
|
||||||
background = new Box
|
Alpha = 0,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
background = new Box
|
||||||
Colour = Color4.Black.Opacity(60),
|
|
||||||
},
|
|
||||||
outerSpin = new Sprite
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
Size = new Vector2(DISC_SIZE + 500),
|
|
||||||
Alpha = 0f,
|
|
||||||
},
|
|
||||||
backgroundStrip = new Container
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
RelativeSizeAxes = Axes.X,
|
|
||||||
Height = border_width,
|
|
||||||
Alpha = 0f,
|
|
||||||
Children = new[]
|
|
||||||
{
|
{
|
||||||
new Container
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Colour = Color4.Black.Opacity(60),
|
||||||
|
},
|
||||||
|
outerSpin = new Sprite
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
Size = new Vector2(DISC_SIZE + 500),
|
||||||
|
Alpha = 0f,
|
||||||
|
},
|
||||||
|
backgroundStrip = new Container
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
Height = border_width,
|
||||||
|
Alpha = 0f,
|
||||||
|
Children = new[]
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
new Container
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.CentreRight,
|
|
||||||
Width = 0.5f,
|
|
||||||
Padding = new MarginPadding { Right = DISC_SIZE / 2 },
|
|
||||||
Children = new[]
|
|
||||||
{
|
{
|
||||||
leftStrip = new BackgroundStrip(0f, 1f)
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.CentreRight,
|
||||||
|
Width = 0.5f,
|
||||||
|
Padding = new MarginPadding { Right = DISC_SIZE / 2 },
|
||||||
|
Children = new[]
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopRight,
|
leftStrip = new BackgroundStrip(0f, 1f)
|
||||||
Origin = Anchor.TopRight,
|
{
|
||||||
|
Anchor = Anchor.TopRight,
|
||||||
|
Origin = Anchor.TopRight,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
new Container
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.CentreLeft,
|
||||||
|
Width = 0.5f,
|
||||||
|
Padding = new MarginPadding { Left = DISC_SIZE / 2 },
|
||||||
|
Children = new[]
|
||||||
|
{
|
||||||
|
rightStrip = new BackgroundStrip(1f, 0f),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new Container
|
},
|
||||||
|
particleContainer = new Container
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Alpha = 0f,
|
||||||
|
},
|
||||||
|
disc = new CircularContainer
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
Alpha = 0f,
|
||||||
|
Masking = true,
|
||||||
|
AlwaysPresent = true,
|
||||||
|
BorderColour = Color4.White,
|
||||||
|
BorderThickness = border_width,
|
||||||
|
Size = new Vector2(DISC_SIZE),
|
||||||
|
Scale = new Vector2(0.8f),
|
||||||
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
new Box
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.CentreLeft,
|
|
||||||
Width = 0.5f,
|
|
||||||
Padding = new MarginPadding { Left = DISC_SIZE / 2 },
|
|
||||||
Children = new[]
|
|
||||||
{
|
{
|
||||||
rightStrip = new BackgroundStrip(1f, 0f),
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Colour = OsuColour.FromHex(@"05262f"),
|
||||||
|
},
|
||||||
|
new Triangles
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
TriangleScale = 2,
|
||||||
|
ColourDark = OsuColour.FromHex(@"04222b"),
|
||||||
|
ColourLight = OsuColour.FromHex(@"052933"),
|
||||||
|
},
|
||||||
|
innerSpin = new Sprite
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Size = new Vector2(1.05f),
|
||||||
|
Alpha = 0.25f,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
particleContainer = new Container
|
|
||||||
{
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
Alpha = 0f,
|
|
||||||
},
|
|
||||||
disc = new CircularContainer
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
Alpha = 0f,
|
|
||||||
Masking = true,
|
|
||||||
AlwaysPresent = true,
|
|
||||||
BorderColour = Color4.White,
|
|
||||||
BorderThickness = border_width,
|
|
||||||
Size = new Vector2(DISC_SIZE),
|
|
||||||
Scale = new Vector2(0.8f),
|
|
||||||
Children = new Drawable[]
|
|
||||||
{
|
|
||||||
new Box
|
|
||||||
{
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
Colour = OsuColour.FromHex(@"05262f"),
|
|
||||||
},
|
|
||||||
new Triangles
|
|
||||||
{
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
TriangleScale = 2,
|
|
||||||
ColourDark = OsuColour.FromHex(@"04222b"),
|
|
||||||
ColourLight = OsuColour.FromHex(@"052933"),
|
|
||||||
},
|
|
||||||
innerSpin = new Sprite
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
Size = new Vector2(1.05f),
|
|
||||||
Alpha = 0.25f,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
@ -154,19 +163,22 @@ namespace osu.Game.Overlays
|
|||||||
Colour = colours.Blue.Opacity(0.5f),
|
Colour = colours.Blue.Opacity(0.5f),
|
||||||
Radius = 50,
|
Radius = 50,
|
||||||
};
|
};
|
||||||
|
|
||||||
disc.Add(drawableMedal = new DrawableMedal(medal)
|
|
||||||
{
|
|
||||||
Anchor = Anchor.TopCentre,
|
|
||||||
Origin = Anchor.TopCentre,
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
Show();
|
|
||||||
|
LoadComponentAsync(drawableMedal = new DrawableMedal(medal)
|
||||||
|
{
|
||||||
|
Anchor = Anchor.TopCentre,
|
||||||
|
Origin = Anchor.TopCentre,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
}, loaded =>
|
||||||
|
{
|
||||||
|
disc.Add(loaded);
|
||||||
|
startAnimation();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
@ -190,11 +202,10 @@ namespace osu.Game.Overlays
|
|||||||
private const double initial_duration = 400;
|
private const double initial_duration = 400;
|
||||||
private const double step_duration = 900;
|
private const double step_duration = 900;
|
||||||
|
|
||||||
protected override void PopIn()
|
private void startAnimation()
|
||||||
{
|
{
|
||||||
base.PopIn();
|
content.Show();
|
||||||
|
|
||||||
this.FadeIn(200);
|
|
||||||
background.FlashColour(Color4.White.Opacity(0.25f), 400);
|
background.FlashColour(Color4.White.Opacity(0.25f), 400);
|
||||||
|
|
||||||
getSample.Play();
|
getSample.Play();
|
||||||
|
@ -51,7 +51,7 @@ namespace osu.Game.Overlays.MedalSplash
|
|||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
Scale = new Vector2(0.81f),
|
Scale = new Vector2(0.41f),
|
||||||
},
|
},
|
||||||
medalGlow = new Sprite
|
medalGlow = new Sprite
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user