Fix LegacyCursor's cursormiddle expanding

This commit is contained in:
mcendu 2019-12-09 17:53:16 +08:00
parent 1e49078c52
commit 22f2a4bed2
No known key found for this signature in database
GPG Key ID: FBCD5D45163D6364
2 changed files with 15 additions and 11 deletions

View File

@ -5,13 +5,13 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Game.Skinning;
using osu.Game.Rulesets.Osu.UI.Cursor;
using osuTK;
namespace osu.Game.Rulesets.Osu.Skinning
{
public class LegacyCursor : CompositeDrawable
public class LegacyCursor : OsuCursorSprite
{
private NonPlayfieldSprite cursor;
private bool spin;
public LegacyCursor()
@ -35,7 +35,7 @@ private void load(ISkinSource skin)
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
},
cursor = new NonPlayfieldSprite
ExpandTarget = new NonPlayfieldSprite
{
Texture = skin.GetTexture("cursor"),
Anchor = Anchor.Centre,
@ -47,7 +47,7 @@ private void load(ISkinSource skin)
protected override void LoadComplete()
{
if (spin)
cursor.Spin(10000, RotationDirection.Clockwise);
ExpandTarget.Spin(10000, RotationDirection.Clockwise);
}
}
}

View File

@ -20,7 +20,7 @@ public class OsuCursor : SkinReloadableDrawable
private bool cursorExpand;
private Container expandTarget;
private OsuCursorSprite cursorSprite;
public OsuCursor()
{
@ -37,17 +37,19 @@ protected override void SkinChanged(ISkinSource skin, bool allowFallback)
[BackgroundDependencyLoader]
private void load()
{
InternalChild = expandTarget = new Container
SkinnableDrawable cursor;
InternalChild = new Container
{
RelativeSizeAxes = Axes.Both,
Origin = Anchor.Centre,
Anchor = Anchor.Centre,
Child = new SkinnableDrawable(new OsuSkinComponent(OsuSkinComponents.Cursor), _ => new DefaultCursor(), confineMode: ConfineMode.NoScaling)
Child = cursor = new SkinnableDrawable(new OsuSkinComponent(OsuSkinComponents.Cursor), _ => new DefaultCursor(), confineMode: ConfineMode.NoScaling)
{
Origin = Anchor.Centre,
Anchor = Anchor.Centre,
}
};
cursorSprite = cursor.Drawable as OsuCursorSprite;
}
private const float pressed_scale = 1.2f;
@ -57,12 +59,12 @@ public void Expand()
{
if (!cursorExpand) return;
expandTarget.ScaleTo(released_scale).ScaleTo(pressed_scale, 100, Easing.OutQuad);
cursorSprite.ExpandTarget.ScaleTo(released_scale).ScaleTo(pressed_scale, 100, Easing.OutQuad);
}
public void Contract() => expandTarget.ScaleTo(released_scale, 100, Easing.OutQuad);
public void Contract() => cursorSprite.ExpandTarget.ScaleTo(released_scale, 100, Easing.OutQuad);
private class DefaultCursor : CompositeDrawable
private class DefaultCursor : OsuCursorSprite
{
public DefaultCursor()
{
@ -73,8 +75,10 @@ public DefaultCursor()
InternalChildren = new Drawable[]
{
new CircularContainer
ExpandTarget = new CircularContainer
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.Both,
Masking = true,
BorderThickness = size / 6,