Open peppy opened 1 year ago
Initially I was going to suggest placing the leaderboard on the bottom right, as it'll be a good position in general that would also work with skins that have large health bars on the top right.
But now that I think about it, it may not work with rulesets like osu!catch and custom ones like Rush!. Probably best making it definable by the ruleset I think (maybe an Anchor
property as a start).
hi, im having this problems too not only in taiko, but also standard mode and catch mode, i suggest the leaderboard overlay to be editable in skin layout editor, not even the position of this overlay blocking some view, but the size and color of it would make disturbing for some people
i suggest the leaderboard overlay to be editable in skin layout editor, not even the position of this overlay blocking some view, but the size and color of it would make disturbing for some people
That is the eventual goal. This issue is focused on fixing the default positioning.
I suggest having a predefined area (using a skin component here) for each game mode, which would then automatically force the leaderboard out. Could be also useful for easy snapping of other components to it.
There's plenty of space in the bottom left below taiko gameplay and it's what stable users are used to
Moving beneath:
diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs
index 128f8d5ffd..5f6fc48010 100644
--- a/osu.Game/Screens/Play/HUDOverlay.cs
+++ b/osu.Game/Screens/Play/HUDOverlay.cs
@@ -15,6 +15,7 @@
using osu.Framework.Graphics.Primitives;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
+using osu.Framework.Utils;
using osu.Game.Configuration;
using osu.Game.Input.Bindings;
using osu.Game.Localisation;
@@ -294,7 +295,9 @@ protected override void Update()
else
topRightElements.Y = 0;
- if (lowestTopScreenSpaceLeft.HasValue)
+ if (Precision.AlmostEquals(playfieldComponents.DrawWidth, DrawWidth))
+ LeaderboardFlow.Y = ToLocalSpace(new Vector2(0, playfieldComponents.ScreenSpaceDrawQuad.BottomLeft.Y)).Y;
+ else if (lowestTopScreenSpaceLeft.HasValue)
LeaderboardFlow.Y = MathHelper.Clamp(ToLocalSpace(new Vector2(0, lowestTopScreenSpaceLeft.Value)).Y, 0, DrawHeight - LeaderboardFlow.DrawHeight);
else
LeaderboardFlow.Y = 0;
(no, there's not plenty of space below)
@peppy I suggest maybe making the leaderboard horizontal on the top or bottom or just having the leaderboard as a resizable,moveable,rotatable element in the skin editor
I'm sorry for the ping
Discussed in https://github.com/ppy/osu/discussions/20416