Move aspect adjustments out of CatchPlayfield

This commit is contained in:
smoogipoo 2018-09-21 15:53:06 +09:00
parent 0bc2bcaf14
commit c3fa7f167f
2 changed files with 41 additions and 26 deletions

View File

@ -33,14 +33,7 @@ public CatchPlayfield(BeatmapDifficulty difficulty, Func<CatchHitObject, Drawabl
Size = new Vector2(0.86f); // matches stable's vertical offset for catcher plate Size = new Vector2(0.86f); // matches stable's vertical offset for catcher plate
InternalChild = new Container InternalChild = new PlayfieldLayer
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.Both,
FillMode = FillMode.Fit,
FillAspectRatio = 4f / 3,
Child = new PlayfieldLayer
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Children = new Drawable[] Children = new Drawable[]
@ -58,7 +51,6 @@ public CatchPlayfield(BeatmapDifficulty difficulty, Func<CatchHitObject, Drawabl
}, },
HitObjectContainer HitObjectContainer
} }
}
}; };
} }

View File

@ -1,12 +1,34 @@
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>. // Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using OpenTK; using OpenTK;
namespace osu.Game.Rulesets.Catch.UI namespace osu.Game.Rulesets.Catch.UI
{ {
public class PlayfieldLayer : Container public class PlayfieldLayer : Container
{
protected override Container<Drawable> Content => content;
private readonly Container content;
public PlayfieldLayer()
{
InternalChild = new Container
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.Both,
FillMode = FillMode.Fit,
FillAspectRatio = 4f / 3,
Child = content = new ScalingContainer { RelativeSizeAxes = Axes.Both }
};
}
/// <summary>
/// A <see cref="Container"/> which scales its content relative to a target width.
/// </summary>
private class ScalingContainer : Container
{ {
protected override void Update() protected override void Update()
{ {
@ -17,3 +39,4 @@ protected override void Update()
} }
} }
} }
}