1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-13 16:32:54 +08:00

Add back visual tests and add easing to alpha fade.

This commit is contained in:
Lucas A 2020-03-26 12:14:44 +01:00
parent a4171253a3
commit c1ac57e70f
2 changed files with 37 additions and 1 deletions

View File

@ -0,0 +1,31 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using NUnit.Framework;
using osu.Game.Screens.Play.HUD;
namespace osu.Game.Tests.Visual.Gameplay
{
public class TestSceneFailingLayer : OsuTestScene
{
private readonly FailingLayer layer;
public TestSceneFailingLayer()
{
Child = layer = new FailingLayer();
}
[Test]
public void TestLayerFading()
{
AddSliderStep("current health", 0.0, 1.0, 1.0, val =>
{
layer.Current.Value = val;
});
AddStep("set health to 0.10", () => layer.Current.Value = 0.10);
AddWaitStep("wait for fade to finish", 5);
AddStep("set health to 1", () => layer.Current.Value = 1f);
}
}
}

View File

@ -5,6 +5,7 @@ using System;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Utils;
using osu.Game.Graphics;
namespace osu.Game.Screens.Play.HUD
@ -16,6 +17,8 @@ namespace osu.Game.Screens.Play.HUD
{
private const float max_alpha = 0.4f;
private const int fade_time = 400;
private readonly Box box;
/// <summary>
@ -41,7 +44,9 @@ namespace osu.Game.Screens.Play.HUD
protected override void Update()
{
box.Alpha = (float)Math.Clamp(max_alpha * (1 - Current.Value / LowHealthThreshold), 0, max_alpha);
box.Alpha = (float)Interpolation.ValueAt(Math.Clamp(Clock.ElapsedFrameTime, 0, fade_time), box.Alpha,
Math.Clamp(max_alpha * (1 - Current.Value / LowHealthThreshold), 0, max_alpha), 0, fade_time, Easing.Out);
base.Update();
}
}