mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 16:29:58 +09:00
Move intro screen background to base implementation and use colour fading
This commit is contained in:
@ -88,6 +88,11 @@ namespace osu.Game.Screens.Menu
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected bool UsingThemedIntro { get; private set; }
|
protected bool UsingThemedIntro { get; private set; }
|
||||||
|
|
||||||
|
protected override BackgroundScreen CreateBackground() => new BackgroundScreenDefault(false)
|
||||||
|
{
|
||||||
|
Colour = Color4.Black
|
||||||
|
};
|
||||||
|
|
||||||
protected IntroScreen([CanBeNull] Func<MainMenu> createNextScreen = null)
|
protected IntroScreen([CanBeNull] Func<MainMenu> createNextScreen = null)
|
||||||
{
|
{
|
||||||
this.createNextScreen = createNextScreen;
|
this.createNextScreen = createNextScreen;
|
||||||
@ -201,6 +206,8 @@ namespace osu.Game.Screens.Menu
|
|||||||
{
|
{
|
||||||
this.FadeIn(300);
|
this.FadeIn(300);
|
||||||
|
|
||||||
|
ApplyToBackground(b => b.FadeColour(Color4.Black));
|
||||||
|
|
||||||
double fadeOutTime = exit_delay;
|
double fadeOutTime = exit_delay;
|
||||||
|
|
||||||
var track = musicController.CurrentTrack;
|
var track = musicController.CurrentTrack;
|
||||||
@ -243,13 +250,22 @@ namespace osu.Game.Screens.Menu
|
|||||||
base.OnResuming(e);
|
base.OnResuming(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool backgroundFaded;
|
||||||
|
|
||||||
|
protected void FadeInBackground(float fadeInTime)
|
||||||
|
{
|
||||||
|
backgroundFaded = true;
|
||||||
|
ApplyToBackground(b => b.FadeColour(Color4.White, fadeInTime));
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnSuspending(ScreenTransitionEvent e)
|
public override void OnSuspending(ScreenTransitionEvent e)
|
||||||
{
|
{
|
||||||
base.OnSuspending(e);
|
base.OnSuspending(e);
|
||||||
initialBeatmap = null;
|
initialBeatmap = null;
|
||||||
}
|
|
||||||
|
|
||||||
protected override BackgroundScreen CreateBackground() => new BackgroundScreenBlack();
|
if (!backgroundFaded)
|
||||||
|
FadeInBackground(200);
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual void StartTrack()
|
protected virtual void StartTrack()
|
||||||
{
|
{
|
||||||
|
@ -8,19 +8,18 @@ using JetBrains.Annotations;
|
|||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Audio;
|
using osu.Framework.Audio;
|
||||||
using osu.Framework.Audio.Sample;
|
using osu.Framework.Audio.Sample;
|
||||||
using osu.Framework.Screens;
|
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
using osu.Framework.Logging;
|
using osu.Framework.Logging;
|
||||||
using osu.Framework.Utils;
|
using osu.Framework.Screens;
|
||||||
using osu.Framework.Timing;
|
using osu.Framework.Timing;
|
||||||
|
using osu.Framework.Utils;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Screens.Backgrounds;
|
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
@ -32,16 +31,9 @@ namespace osu.Game.Screens.Menu
|
|||||||
|
|
||||||
protected override string BeatmapFile => "triangles.osz";
|
protected override string BeatmapFile => "triangles.osz";
|
||||||
|
|
||||||
protected override BackgroundScreen CreateBackground() => background = new BackgroundScreenDefault(false)
|
|
||||||
{
|
|
||||||
Alpha = 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
[Resolved]
|
[Resolved]
|
||||||
private AudioManager audio { get; set; }
|
private AudioManager audio { get; set; }
|
||||||
|
|
||||||
private BackgroundScreenDefault background;
|
|
||||||
|
|
||||||
private Sample welcome;
|
private Sample welcome;
|
||||||
|
|
||||||
private DecoupleableInterpolatingFramedClock decoupledClock;
|
private DecoupleableInterpolatingFramedClock decoupledClock;
|
||||||
@ -75,7 +67,7 @@ namespace osu.Game.Screens.Menu
|
|||||||
if (UsingThemedIntro)
|
if (UsingThemedIntro)
|
||||||
decoupledClock.ChangeSource(Track);
|
decoupledClock.ChangeSource(Track);
|
||||||
|
|
||||||
LoadComponentAsync(intro = new TrianglesIntroSequence(logo, background)
|
LoadComponentAsync(intro = new TrianglesIntroSequence(logo, () => FadeInBackground(0))
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Clock = decoupledClock,
|
Clock = decoupledClock,
|
||||||
@ -95,19 +87,10 @@ namespace osu.Game.Screens.Menu
|
|||||||
{
|
{
|
||||||
base.OnSuspending(e);
|
base.OnSuspending(e);
|
||||||
|
|
||||||
// ensure the background is shown, even if the TriangleIntroSequence failed to do so.
|
|
||||||
background.ApplyToBackground(b => b.Show());
|
|
||||||
|
|
||||||
// important as there is a clock attached to a track which will likely be disposed before returning to this screen.
|
// important as there is a clock attached to a track which will likely be disposed before returning to this screen.
|
||||||
intro.Expire();
|
intro.Expire();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnResuming(ScreenTransitionEvent e)
|
|
||||||
{
|
|
||||||
base.OnResuming(e);
|
|
||||||
background.FadeOut(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void StartTrack()
|
protected override void StartTrack()
|
||||||
{
|
{
|
||||||
decoupledClock.Start();
|
decoupledClock.Start();
|
||||||
@ -116,7 +99,7 @@ namespace osu.Game.Screens.Menu
|
|||||||
private class TrianglesIntroSequence : CompositeDrawable
|
private class TrianglesIntroSequence : CompositeDrawable
|
||||||
{
|
{
|
||||||
private readonly OsuLogo logo;
|
private readonly OsuLogo logo;
|
||||||
private readonly BackgroundScreenDefault background;
|
private readonly Action showBackgroundAction;
|
||||||
private OsuSpriteText welcomeText;
|
private OsuSpriteText welcomeText;
|
||||||
|
|
||||||
private RulesetFlow rulesets;
|
private RulesetFlow rulesets;
|
||||||
@ -128,10 +111,10 @@ namespace osu.Game.Screens.Menu
|
|||||||
|
|
||||||
public Action LoadMenu;
|
public Action LoadMenu;
|
||||||
|
|
||||||
public TrianglesIntroSequence(OsuLogo logo, BackgroundScreenDefault background)
|
public TrianglesIntroSequence(OsuLogo logo, Action showBackgroundAction)
|
||||||
{
|
{
|
||||||
this.logo = logo;
|
this.logo = logo;
|
||||||
this.background = background;
|
this.showBackgroundAction = showBackgroundAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Resolved]
|
[Resolved]
|
||||||
@ -205,7 +188,6 @@ namespace osu.Game.Screens.Menu
|
|||||||
|
|
||||||
rulesets.Hide();
|
rulesets.Hide();
|
||||||
lazerLogo.Hide();
|
lazerLogo.Hide();
|
||||||
background.ApplyToBackground(b => b.Hide());
|
|
||||||
|
|
||||||
using (BeginAbsoluteSequence(0))
|
using (BeginAbsoluteSequence(0))
|
||||||
{
|
{
|
||||||
@ -267,7 +249,7 @@ namespace osu.Game.Screens.Menu
|
|||||||
|
|
||||||
logo.FadeIn();
|
logo.FadeIn();
|
||||||
|
|
||||||
background.ApplyToBackground(b => b.Show());
|
showBackgroundAction();
|
||||||
|
|
||||||
game.Add(new GameWideFlash());
|
game.Add(new GameWideFlash());
|
||||||
|
|
||||||
|
@ -5,11 +5,9 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using osuTK;
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Audio;
|
using osu.Framework.Audio;
|
||||||
using osu.Framework.Audio.Sample;
|
using osu.Framework.Audio.Sample;
|
||||||
using osu.Framework.Screens;
|
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
@ -17,8 +15,8 @@ using osu.Framework.Graphics.Sprites;
|
|||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
using osu.Game.Audio;
|
using osu.Game.Audio;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
using osu.Game.Screens.Backgrounds;
|
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
namespace osu.Game.Screens.Menu
|
namespace osu.Game.Screens.Menu
|
||||||
@ -35,13 +33,6 @@ namespace osu.Game.Screens.Menu
|
|||||||
private ISample pianoReverb;
|
private ISample pianoReverb;
|
||||||
protected override string SeeyaSampleName => "Intro/Welcome/seeya";
|
protected override string SeeyaSampleName => "Intro/Welcome/seeya";
|
||||||
|
|
||||||
protected override BackgroundScreen CreateBackground() => background = new BackgroundScreenDefault(false)
|
|
||||||
{
|
|
||||||
Alpha = 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
private BackgroundScreenDefault background;
|
|
||||||
|
|
||||||
public IntroWelcome([CanBeNull] Func<MainMenu> createNextScreen = null)
|
public IntroWelcome([CanBeNull] Func<MainMenu> createNextScreen = null)
|
||||||
: base(createNextScreen)
|
: base(createNextScreen)
|
||||||
{
|
{
|
||||||
@ -100,7 +91,7 @@ namespace osu.Game.Screens.Menu
|
|||||||
logo.ScaleTo(1);
|
logo.ScaleTo(1);
|
||||||
logo.FadeIn(fade_in_time);
|
logo.FadeIn(fade_in_time);
|
||||||
|
|
||||||
background.FadeIn(fade_in_time);
|
FadeInBackground(fade_in_time);
|
||||||
|
|
||||||
LoadMenu();
|
LoadMenu();
|
||||||
}, delay_step_two);
|
}, delay_step_two);
|
||||||
@ -108,12 +99,6 @@ namespace osu.Game.Screens.Menu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnResuming(ScreenTransitionEvent e)
|
|
||||||
{
|
|
||||||
base.OnResuming(e);
|
|
||||||
background.FadeOut(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class WelcomeIntroSequence : Container
|
private class WelcomeIntroSequence : Container
|
||||||
{
|
{
|
||||||
private Drawable welcomeText;
|
private Drawable welcomeText;
|
||||||
|
Reference in New Issue
Block a user