mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 05:32:54 +08:00
Fix osu! judgements getting scaled twice over different durations
This commit is contained in:
parent
aadef41182
commit
b907c2f4f6
@ -37,12 +37,11 @@ namespace osu.Game.Rulesets.Mania.UI
|
||||
|
||||
public override void PlayAnimation()
|
||||
{
|
||||
base.PlayAnimation();
|
||||
|
||||
switch (Result)
|
||||
{
|
||||
case HitResult.None:
|
||||
case HitResult.Miss:
|
||||
base.PlayAnimation();
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -52,6 +51,8 @@ namespace osu.Game.Rulesets.Mania.UI
|
||||
this.Delay(50)
|
||||
.ScaleTo(0.75f, 250)
|
||||
.FadeOut(200);
|
||||
|
||||
// osu!mania uses a custom fade length, so the base call is intentionally omitted.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -74,10 +74,14 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
||||
|
||||
public override void PlayAnimation()
|
||||
{
|
||||
base.PlayAnimation();
|
||||
|
||||
if (Result != HitResult.Miss)
|
||||
JudgementText.ScaleTo(new Vector2(0.8f, 1)).Then().ScaleTo(new Vector2(1.2f, 1), 1800, Easing.OutQuint);
|
||||
{
|
||||
JudgementText
|
||||
.ScaleTo(new Vector2(0.8f, 1))
|
||||
.ScaleTo(new Vector2(1.2f, 1), 1800, Easing.OutQuint);
|
||||
}
|
||||
|
||||
base.PlayAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Game.Rulesets.Judgements;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
|
||||
namespace osu.Game.Rulesets.Taiko.UI
|
||||
{
|
||||
@ -16,5 +17,26 @@ namespace osu.Game.Rulesets.Taiko.UI
|
||||
this.MoveToY(-100, 500);
|
||||
base.ApplyHitAnimations();
|
||||
}
|
||||
|
||||
protected override Drawable CreateDefaultJudgement(HitResult result) => new TaikoJudgementPiece(result);
|
||||
|
||||
private class TaikoJudgementPiece : DefaultJudgementPiece
|
||||
{
|
||||
public TaikoJudgementPiece(HitResult result)
|
||||
: base(result)
|
||||
{
|
||||
}
|
||||
|
||||
public override void PlayAnimation()
|
||||
{
|
||||
if (Result != HitResult.Miss)
|
||||
{
|
||||
JudgementText.ScaleTo(0.9f);
|
||||
JudgementText.ScaleTo(1, 500, Easing.OutElastic);
|
||||
}
|
||||
|
||||
base.PlayAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,13 @@ namespace osu.Game.Rulesets.Judgements
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Plays the default animation for this judgement piece.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The base implementation only handles fade (for all result types) and misses.
|
||||
/// Individual rulesets are recommended to implement their appropriate hit animations.
|
||||
/// </remarks>
|
||||
public virtual void PlayAnimation()
|
||||
{
|
||||
switch (Result)
|
||||
@ -60,12 +67,6 @@ namespace osu.Game.Rulesets.Judgements
|
||||
|
||||
this.RotateTo(0);
|
||||
this.RotateTo(40, 800, Easing.InQuint);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
this.ScaleTo(0.9f);
|
||||
this.ScaleTo(1, 500, Easing.OutElastic);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user