mirror of
https://github.com/ppy/osu.git
synced 2025-01-13 09:23:06 +08:00
Group transforms using delayed sequence
And some timing adjustments
This commit is contained in:
parent
6fb8755a95
commit
9cad0ce2e9
@ -18,6 +18,8 @@ namespace osu.Game.Screens.Menu
|
||||
|
||||
private readonly OsuLogo logo;
|
||||
|
||||
private readonly Container barsContainer;
|
||||
|
||||
private readonly Container barTopLeft;
|
||||
private readonly Container barBottomLeft;
|
||||
private readonly Container barTopRight;
|
||||
@ -49,48 +51,57 @@ namespace osu.Game.Screens.Menu
|
||||
Children = new Drawable[]
|
||||
{
|
||||
mediumRing = new Ring(Color4.White.Opacity(80)),
|
||||
barTopLeft = new Container
|
||||
barsContainer = new Container
|
||||
{
|
||||
Origin = Anchor.CentreLeft,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = 45,
|
||||
Child = new Box
|
||||
Origin = Anchor.Centre,
|
||||
AutoSizeAxes = Axes.Both,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(180),
|
||||
}
|
||||
},
|
||||
barTopRight = new Container
|
||||
{
|
||||
Origin = Anchor.CentreRight,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = -45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(80),
|
||||
}
|
||||
},
|
||||
barBottomLeft = new Container
|
||||
{
|
||||
Origin = Anchor.CentreLeft,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = -45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(230),
|
||||
}
|
||||
},
|
||||
barBottomRight = new Container
|
||||
{
|
||||
Origin = Anchor.CentreRight,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = 45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(130),
|
||||
barTopLeft = new Container
|
||||
{
|
||||
Origin = Anchor.CentreLeft,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = 45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(180),
|
||||
}
|
||||
},
|
||||
barTopRight = new Container
|
||||
{
|
||||
Origin = Anchor.CentreRight,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = -45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(80),
|
||||
}
|
||||
},
|
||||
barBottomLeft = new Container
|
||||
{
|
||||
Origin = Anchor.CentreLeft,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = -45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(230),
|
||||
}
|
||||
},
|
||||
barBottomRight = new Container
|
||||
{
|
||||
Origin = Anchor.CentreRight,
|
||||
Anchor = Anchor.Centre,
|
||||
Rotation = 45,
|
||||
Child = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = Color4.White.Opacity(130),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
smallRing = new Ring(Color4.White),
|
||||
@ -186,56 +197,78 @@ namespace osu.Game.Screens.Menu
|
||||
|
||||
public void Start()
|
||||
{
|
||||
welcomeText.Delay(350).ScaleTo(1, 250, Easing.Out);
|
||||
welcomeText.Delay(350).FadeIn(1000, Easing.Out);
|
||||
welcomeText.Delay(350).TransformSpacingTo(new Vector2(20, 0), 1450, Easing.Out);
|
||||
mediumRing.ResizeTo(130, 500, Easing.InExpo);
|
||||
mediumRing.Foreground.Delay(500).ResizeTo(1, 1000, Easing.OutQuint);
|
||||
|
||||
mediumRing.ResizeTo(120, 500, Easing.InExpo);
|
||||
mediumRing.Foreground.Delay(620).ResizeTo(1, 1000, Easing.OutQuint);
|
||||
using (welcomeText.BeginDelayedSequence(350))
|
||||
{
|
||||
welcomeText.ScaleTo(1, 250, Easing.Out);
|
||||
welcomeText.FadeIn(1000, Easing.Out);
|
||||
welcomeText.TransformSpacingTo(new Vector2(20, 0), 1450, Easing.Out);
|
||||
}
|
||||
|
||||
smallRing.Delay(200).ResizeTo(45, 500, Easing.InExpo);
|
||||
smallRing.Foreground.Delay(700).ResizeTo(1, 2000, Easing.OutQuint);
|
||||
using (smallRing.BeginDelayedSequence(200))
|
||||
{
|
||||
smallRing.ResizeTo(40, 400, Easing.InExpo);
|
||||
smallRing.Foreground.Delay(400).ResizeTo(1, 1500, Easing.OutQuint);
|
||||
}
|
||||
|
||||
barTopLeft.Delay(700).FadeIn();
|
||||
barTopLeft.Delay(700).MoveTo(new Vector2(-120, -120), 900, Easing.OutQuint);
|
||||
barTopLeft.Delay(800).ResizeWidthTo(0, 900, Easing.OutExpo);
|
||||
using (barsContainer.BeginDelayedSequence(500, true))
|
||||
{
|
||||
foreach (var bar in barsContainer)
|
||||
{
|
||||
bar.FadeIn();
|
||||
bar.Delay(100).ResizeWidthTo(0, 900, Easing.OutExpo);
|
||||
}
|
||||
|
||||
barTopRight.Delay(700).FadeIn();
|
||||
barTopRight.Delay(700).MoveTo(new Vector2(120, -120), 900, Easing.OutQuint);
|
||||
barTopRight.Delay(800).ResizeWidthTo(0, 900, Easing.OutExpo);
|
||||
|
||||
barBottomLeft.Delay(700).FadeIn();
|
||||
barBottomLeft.Delay(700).MoveTo(new Vector2(-120, 120), 900, Easing.OutQuint);
|
||||
barBottomLeft.Delay(800).ResizeWidthTo(0, 900, Easing.OutExpo);
|
||||
|
||||
barBottomRight.Delay(700).FadeIn();
|
||||
barBottomRight.Delay(700).MoveTo(new Vector2(120, 120), 900, Easing.OutQuint);
|
||||
barBottomRight.Delay(800).ResizeWidthTo(0, 900, Easing.OutExpo);
|
||||
barTopLeft.MoveTo(new Vector2(-120, -120), 900, Easing.OutQuint);
|
||||
barTopRight.MoveTo(new Vector2(120, -120), 900, Easing.OutQuint);
|
||||
barBottomLeft.MoveTo(new Vector2(-120, 120), 900, Easing.OutQuint);
|
||||
barBottomRight.MoveTo(new Vector2(120, 120), 900, Easing.OutQuint);
|
||||
}
|
||||
|
||||
bigRing.Delay(1950).ResizeTo(400, 550, Easing.InOutQuint);
|
||||
bigRing.Foreground.Delay(1950).ResizeTo(0.8f, 450, Easing.InExpo).Then().ResizeTo(1, 500, Easing.OutExpo);
|
||||
|
||||
backgroundFill.Delay(2317).ResizeHeightTo(1, 650, Easing.InOutQuint);
|
||||
backgroundFill.Delay(2317).RotateTo(-90, 650, Easing.InOutQuint);
|
||||
using (backgroundFill.BeginDelayedSequence(2317))
|
||||
{
|
||||
backgroundFill.ResizeHeightTo(1, 650, Easing.InOutQuint);
|
||||
backgroundFill.RotateTo(-90, 650, Easing.InOutQuint);
|
||||
}
|
||||
|
||||
foregroundFill.Delay(2350).ResizeWidthTo(1, 650, Easing.InOutQuint);
|
||||
foregroundFill.Delay(2350).RotateTo(-90, 650, Easing.InOutQuint);
|
||||
using (foregroundFill.BeginDelayedSequence(2350))
|
||||
{
|
||||
foregroundFill.ResizeWidthTo(1, 650, Easing.InOutQuint);
|
||||
foregroundFill.RotateTo(-90, 650, Easing.InOutQuint);
|
||||
}
|
||||
|
||||
yellowCircle.Delay(2383).MoveToY(-207, 617, Easing.InOutQuad);
|
||||
yellowCircle.Delay(2383).RotateTo(-180, 617, Easing.InOutQuad);
|
||||
yellowCircle.Delay(2383).ResizeTo(414, 617, Easing.InOutExpo);
|
||||
using (yellowCircle.BeginDelayedSequence(2383))
|
||||
{
|
||||
yellowCircle.MoveToY(-207, 617, Easing.InOutQuad);
|
||||
yellowCircle.RotateTo(-180, 617, Easing.InOutQuad);
|
||||
yellowCircle.ResizeTo(414, 617, Easing.InOutSine);
|
||||
}
|
||||
|
||||
purpleCircle.Delay(2317).MoveToY(207, 683, Easing.InOutQuad);
|
||||
purpleCircle.Delay(2317).RotateTo(-180, 683, Easing.InOutQuad);
|
||||
purpleCircle.Delay(2317).ResizeTo(414, 683, Easing.InOutExpo);
|
||||
using (purpleCircle.BeginDelayedSequence(2317))
|
||||
{
|
||||
purpleCircle.MoveToY(207, 683, Easing.InOutQuad);
|
||||
purpleCircle.RotateTo(-180, 683, Easing.InOutQuad);
|
||||
purpleCircle.ResizeTo(414, 683, Easing.InOutSine);
|
||||
}
|
||||
|
||||
blueCircle.Delay(2449).MoveToX(-207, 551, Easing.InOutQuad);
|
||||
blueCircle.Delay(2449).RotateTo(-180, 551, Easing.InOutQuad);
|
||||
blueCircle.Delay(2449).ResizeTo(414, 551, Easing.InOutExpo);
|
||||
using (blueCircle.BeginDelayedSequence(2449))
|
||||
{
|
||||
blueCircle.MoveToX(-207, 551, Easing.InOutQuad);
|
||||
blueCircle.RotateTo(-180, 551, Easing.InOutQuad);
|
||||
blueCircle.ResizeTo(414, 551, Easing.InOutSine);
|
||||
}
|
||||
|
||||
pinkCircle.Delay(2515).MoveToX(208, 485, Easing.InOutQuad);
|
||||
pinkCircle.Delay(2515).RotateTo(-180, 485, Easing.InOutQuad);
|
||||
pinkCircle.Delay(2515).ResizeTo(416, 485, Easing.InOutExpo);
|
||||
using (pinkCircle.BeginDelayedSequence(2515))
|
||||
{
|
||||
pinkCircle.MoveToX(208, 485, Easing.InOutQuad);
|
||||
pinkCircle.RotateTo(-180, 485, Easing.InOutQuad);
|
||||
pinkCircle.ResizeTo(416, 485, Easing.InOutSine);
|
||||
}
|
||||
|
||||
logo.Delay(3200).FadeIn(300);
|
||||
|
||||
@ -252,11 +285,11 @@ namespace osu.Game.Screens.Menu
|
||||
welcomeText.Alpha = 0;
|
||||
|
||||
smallRing.Size = mediumRing.Size = bigRing.Size = Vector2.Zero;
|
||||
mediumRing.Foreground.Size = new Vector2(0.8f);
|
||||
smallRing.Foreground.Size = new Vector2(0.7f);
|
||||
mediumRing.Foreground.Size = new Vector2(0.75f);
|
||||
smallRing.Foreground.Size = new Vector2(0.5f);
|
||||
bigRing.Foreground.Size = Vector2.Zero;
|
||||
|
||||
barTopLeft.Size = barTopRight.Size = barBottomLeft.Size = barBottomRight.Size = new Vector2(115, 1.5f);
|
||||
barTopLeft.Size = barTopRight.Size = barBottomLeft.Size = barBottomRight.Size = new Vector2(110, 1.5f);
|
||||
barTopLeft.Alpha = barTopRight.Alpha = barBottomLeft.Alpha = barBottomRight.Alpha = 0;
|
||||
barTopLeft.Position = new Vector2(-90, -90);
|
||||
barTopRight.Position = new Vector2(90, -90);
|
||||
@ -269,10 +302,10 @@ namespace osu.Game.Screens.Menu
|
||||
|
||||
yellowCircle.Size = purpleCircle.Size = blueCircle.Size = pinkCircle.Size = Vector2.Zero;
|
||||
yellowCircle.Rotation = purpleCircle.Rotation = blueCircle.Rotation = pinkCircle.Rotation = 0;
|
||||
yellowCircle.Position = new Vector2(0, -300);
|
||||
purpleCircle.Position = new Vector2(0, 300);
|
||||
blueCircle.Position = new Vector2(-300, 0);
|
||||
pinkCircle.Position = new Vector2(300, 0);
|
||||
yellowCircle.Position = new Vector2(0, -250);
|
||||
purpleCircle.Position = new Vector2(0, 250);
|
||||
blueCircle.Position = new Vector2(-250, 0);
|
||||
pinkCircle.Position = new Vector2(250, 0);
|
||||
}
|
||||
|
||||
public void Restart()
|
||||
|
Loading…
Reference in New Issue
Block a user