mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 14:17:26 +08:00
Improve transition between multiplayer screens (and share constants)
This commit is contained in:
parent
51f03d0f07
commit
a11862ba0d
@ -305,13 +305,13 @@ namespace osu.Game.Screens.Multi
|
||||
switch (newScreen)
|
||||
{
|
||||
case LoungeSubScreen _:
|
||||
header.ResizeHeightTo(400, WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
headerBackground.MoveToX(0, WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
header.Delay(MultiplayerSubScreen.RESUME_TRANSITION_DELAY).ResizeHeightTo(400, MultiplayerSubScreen.APPEAR_DURATION, Easing.OutQuint);
|
||||
headerBackground.MoveToX(0, MultiplayerSubScreen.X_MOVE_DURATION, Easing.OutQuint);
|
||||
break;
|
||||
|
||||
case MatchSubScreen _:
|
||||
header.ResizeHeightTo(135, WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
headerBackground.MoveToX(-200, WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
header.ResizeHeightTo(135, MultiplayerSubScreen.APPEAR_DURATION, Easing.OutQuint);
|
||||
headerBackground.MoveToX(-MultiplayerSubScreen.X_SHIFT, MultiplayerSubScreen.X_MOVE_DURATION, Easing.OutQuint);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Screens;
|
||||
using osu.Game.Graphics.Containers;
|
||||
|
||||
namespace osu.Game.Screens.Multi
|
||||
{
|
||||
@ -24,31 +23,41 @@ namespace osu.Game.Screens.Multi
|
||||
RelativeSizeAxes = Axes.Both;
|
||||
}
|
||||
|
||||
public const float X_SHIFT = 200;
|
||||
|
||||
public const double X_MOVE_DURATION = 800;
|
||||
|
||||
public const double RESUME_TRANSITION_DELAY = DISAPPEAR_DURATION / 2;
|
||||
|
||||
public const double APPEAR_DURATION = 800;
|
||||
|
||||
public const double DISAPPEAR_DURATION = 500;
|
||||
|
||||
public override void OnEntering(IScreen last)
|
||||
{
|
||||
this.FadeInFromZero(WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
this.FadeInFromZero(WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(200).MoveToX(0, WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
this.FadeInFromZero(APPEAR_DURATION, Easing.OutQuint);
|
||||
this.FadeInFromZero(APPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(X_SHIFT).MoveToX(0, X_MOVE_DURATION, Easing.OutQuint);
|
||||
}
|
||||
|
||||
public override bool OnExiting(IScreen next)
|
||||
{
|
||||
this.FadeOut(WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(200, WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.FadeOut(DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(X_SHIFT, X_MOVE_DURATION, Easing.OutQuint);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnResuming(IScreen last)
|
||||
{
|
||||
this.FadeIn(WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(0, WaveContainer.APPEAR_DURATION, Easing.OutQuint);
|
||||
this.Delay(RESUME_TRANSITION_DELAY).FadeIn(APPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(0, X_MOVE_DURATION, Easing.OutQuint);
|
||||
}
|
||||
|
||||
public override void OnSuspending(IScreen next)
|
||||
{
|
||||
this.FadeOut(WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(-200, WaveContainer.DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.FadeOut(DISAPPEAR_DURATION, Easing.OutQuint);
|
||||
this.MoveToX(-X_SHIFT, X_MOVE_DURATION, Easing.OutQuint);
|
||||
}
|
||||
|
||||
public override string ToString() => Title;
|
||||
|
Loading…
Reference in New Issue
Block a user