diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/AccentedCirclePiece.cs b/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/AccentedCirclePiece.cs index 9ccfdeacf6..578728fdb7 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/AccentedCirclePiece.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/AccentedCirclePiece.cs @@ -5,6 +5,9 @@ using OpenTK; namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces { + /// + /// A type of circle piece which is drawn at a higher scale as an "accent". + /// public class AccentedCirclePiece : CirclePiece { /// diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/CirclePiece.cs b/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/CirclePiece.cs index 5b2233a4fe..8243464a54 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/CirclePiece.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/Pieces/CirclePiece.cs @@ -7,7 +7,6 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Game.Graphics.Backgrounds; using OpenTK.Graphics; -using OpenTK; using osu.Framework.Graphics.Textures; using osu.Framework.Allocation; using System; @@ -17,11 +16,8 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces /// /// A circle piece which is used uniformly through osu!taiko to visualise hitobjects. /// - /// The body of this piece will overshoot it by Height/2 on both sides of its length, such that - /// a regular "circle" is the result of setting Width to 0. - /// - /// - /// Hitobjects that have a length (e.g. DrumRolls) need only to set Width and the extra corner radius will be added internally. + /// The body of this piece will overshoot it by to form + /// a rounded (_[-Width-]_) figure such that a regular "circle" is the result of setting Width to 0. /// /// public class CirclePiece : Container @@ -67,7 +63,6 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces set { throw new InvalidOperationException($"{nameof(CirclePiece)} must always use CentreLeft origin."); } } - private readonly Container innerLayer; private readonly Container innerCircleContainer; private readonly Box innerBackground; @@ -80,8 +75,9 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces { this.symbolName = symbolName; - // The "inner layer" overshoots the the CirclePiece by Height/2 px on both sides Height = TaikoHitObject.CIRCLE_RADIUS * 2; + + // The "inner layer" is the body of the CirclePiece that overshoots it by Height/2 px on both sides AddInternal(innerLayer = new Container { Name = "Inner Layer", @@ -154,6 +150,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces protected override void Update() { + // Add the overshoot to compensate for corner radius innerLayer.Width = DrawWidth + DrawHeight; }