mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 00:40:09 +09:00
Use nested containers for shadow
This commit is contained in:
@ -17,21 +17,28 @@ namespace osu.Game.Graphics
|
|||||||
private readonly Sprite spriteShadow;
|
private readonly Sprite spriteShadow;
|
||||||
private readonly Sprite spriteMain;
|
private readonly Sprite spriteMain;
|
||||||
|
|
||||||
|
private readonly Container shadowVisibility;
|
||||||
|
|
||||||
public SpriteIcon()
|
public SpriteIcon()
|
||||||
{
|
{
|
||||||
spriteShadow = new Sprite
|
InternalChildren = new Drawable[]
|
||||||
|
{
|
||||||
|
shadowVisibility = new Container
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Child = spriteShadow = new Sprite
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
FillMode = FillMode.Fit,
|
FillMode = FillMode.Fit,
|
||||||
Depth = 2,
|
|
||||||
Y = 2,
|
Y = 2,
|
||||||
Colour = new Color4(0f, 0f, 0f, 0.2f),
|
Colour = new Color4(0f, 0f, 0f, 0.2f),
|
||||||
};
|
},
|
||||||
|
Alpha = 0,
|
||||||
InternalChildren = new[]
|
},
|
||||||
{
|
|
||||||
spriteMain = new Sprite
|
spriteMain = new Sprite
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
@ -81,12 +88,7 @@ namespace osu.Game.Graphics
|
|||||||
get { return spriteShadow.IsPresent; }
|
get { return spriteShadow.IsPresent; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value == (spriteShadow.IsAlive && spriteShadow.IsLoaded)) return;
|
shadowVisibility.Alpha = value ? 1 : 0;
|
||||||
|
|
||||||
if (value)
|
|
||||||
AddInternal(spriteShadow);
|
|
||||||
else
|
|
||||||
RemoveInternal(spriteShadow);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user