mirror of
https://github.com/ppy/osu.git
synced 2025-01-27 11:03:22 +08:00
Fix judgement animations not resetting on use
This commit is contained in:
parent
dfcb73131d
commit
8a3cadc111
@ -62,6 +62,8 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
|
|
||||||
if (lighting != null)
|
if (lighting != null)
|
||||||
{
|
{
|
||||||
|
lighting.ResetAnimation();
|
||||||
|
|
||||||
if (JudgedObject != null)
|
if (JudgedObject != null)
|
||||||
{
|
{
|
||||||
lightingColour = JudgedObject.AccentColour.GetBoundCopy();
|
lightingColour = JudgedObject.AccentColour.GetBoundCopy();
|
||||||
|
@ -31,8 +31,10 @@ namespace osu.Game.Rulesets.Judgements
|
|||||||
public JudgementResult Result { get; private set; }
|
public JudgementResult Result { get; private set; }
|
||||||
public DrawableHitObject JudgedObject { get; private set; }
|
public DrawableHitObject JudgedObject { get; private set; }
|
||||||
|
|
||||||
protected Container JudgementBody;
|
protected Container JudgementBody { get; private set; }
|
||||||
protected SpriteText JudgementText;
|
protected SpriteText JudgementText { get; private set; }
|
||||||
|
|
||||||
|
private SkinnableDrawable bodyDrawable;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Duration of initial fade in.
|
/// Duration of initial fade in.
|
||||||
@ -89,6 +91,8 @@ namespace osu.Game.Rulesets.Judgements
|
|||||||
|
|
||||||
prepareDrawables();
|
prepareDrawables();
|
||||||
|
|
||||||
|
bodyDrawable.ResetAnimation();
|
||||||
|
|
||||||
this.FadeInFromZero(FadeInDuration, Easing.OutQuint);
|
this.FadeInFromZero(FadeInDuration, Easing.OutQuint);
|
||||||
JudgementBody.ScaleTo(1);
|
JudgementBody.ScaleTo(1);
|
||||||
JudgementBody.RotateTo(0);
|
JudgementBody.RotateTo(0);
|
||||||
@ -131,7 +135,7 @@ namespace osu.Game.Rulesets.Judgements
|
|||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Child = new SkinnableDrawable(new GameplaySkinComponent<HitResult>(type), _ => JudgementText = new OsuSpriteText
|
Child = bodyDrawable = new SkinnableDrawable(new GameplaySkinComponent<HitResult>(type), _ => JudgementText = new OsuSpriteText
|
||||||
{
|
{
|
||||||
Text = type.GetDescription().ToUpperInvariant(),
|
Text = type.GetDescription().ToUpperInvariant(),
|
||||||
Font = OsuFont.Numeric.With(size: 20),
|
Font = OsuFont.Numeric.With(size: 20),
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using osu.Framework.Caching;
|
using osu.Framework.Caching;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Animations;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Skinning
|
namespace osu.Game.Skinning
|
||||||
@ -50,6 +51,11 @@ namespace osu.Game.Skinning
|
|||||||
RelativeSizeAxes = Axes.Both;
|
RelativeSizeAxes = Axes.Both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Seeks to the 0-th frame if the content of this <see cref="SkinnableDrawable"/> is an <see cref="IFramedAnimation"/>.
|
||||||
|
/// </summary>
|
||||||
|
public void ResetAnimation() => (Drawable as IFramedAnimation)?.GotoFrame(0);
|
||||||
|
|
||||||
private readonly Func<ISkinComponent, Drawable> createDefault;
|
private readonly Func<ISkinComponent, Drawable> createDefault;
|
||||||
|
|
||||||
private readonly Cached scaling = new Cached();
|
private readonly Cached scaling = new Cached();
|
||||||
|
Loading…
Reference in New Issue
Block a user