mirror of
https://github.com/ppy/osu.git
synced 2025-02-16 01:03:21 +08:00
Adjust hold note visibility and glow composition
This commit is contained in:
parent
81a3a8a1a4
commit
56ea1c1d63
@ -23,7 +23,6 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
private readonly DrawableNote head;
|
private readonly DrawableNote head;
|
||||||
private readonly DrawableNote tail;
|
private readonly DrawableNote tail;
|
||||||
|
|
||||||
private readonly GlowPiece glowPiece;
|
|
||||||
private readonly BodyPiece bodyPiece;
|
private readonly BodyPiece bodyPiece;
|
||||||
private readonly Container fullHeightContainer;
|
private readonly Container fullHeightContainer;
|
||||||
|
|
||||||
@ -45,17 +44,8 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
|
|
||||||
InternalChildren = new Drawable[]
|
InternalChildren = new Drawable[]
|
||||||
{
|
{
|
||||||
// The hit object itself cannot be used for various elements because the tail overshoots it
|
|
||||||
// So a specialized container that is updated to contain the tail height is used
|
|
||||||
fullHeightContainer = new Container
|
|
||||||
{
|
|
||||||
RelativeSizeAxes = Axes.X,
|
|
||||||
Child = glowPiece = new GlowPiece()
|
|
||||||
},
|
|
||||||
bodyPiece = new BodyPiece
|
bodyPiece = new BodyPiece
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
|
||||||
Origin = Anchor.TopCentre,
|
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
},
|
},
|
||||||
tickContainer = new Container<DrawableHoldNoteTick>
|
tickContainer = new Container<DrawableHoldNoteTick>
|
||||||
@ -92,7 +82,6 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
{
|
{
|
||||||
base.AccentColour = value;
|
base.AccentColour = value;
|
||||||
|
|
||||||
glowPiece.AccentColour = value;
|
|
||||||
bodyPiece.AccentColour = value;
|
bodyPiece.AccentColour = value;
|
||||||
head.AccentColour = value;
|
head.AccentColour = value;
|
||||||
tail.AccentColour = value;
|
tail.AccentColour = value;
|
||||||
@ -121,12 +110,8 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
base.Update();
|
base.Update();
|
||||||
|
|
||||||
// Make the body piece not lie under the head note
|
// Make the body piece not lie under the head note
|
||||||
bodyPiece.Y = head.Height;
|
bodyPiece.Y = head.Height / 2;
|
||||||
bodyPiece.Height = DrawHeight - head.Height;
|
bodyPiece.Height = DrawHeight - head.Height / 2 + tail.Height / 2;
|
||||||
|
|
||||||
// Make the fullHeightContainer "contain" the height of the tail note, keeping in mind
|
|
||||||
// that the tail note overshoots the height of this hit object
|
|
||||||
fullHeightContainer.Height = DrawHeight + tail.Height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool OnPressed(ManiaAction action)
|
public bool OnPressed(ManiaAction action)
|
||||||
@ -175,8 +160,6 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
: base(holdNote.HitObject.Head, action)
|
: base(holdNote.HitObject.Head, action)
|
||||||
{
|
{
|
||||||
this.holdNote = holdNote;
|
this.holdNote = holdNote;
|
||||||
|
|
||||||
GlowPiece.Alpha = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool OnPressed(ManiaAction action)
|
public override bool OnPressed(ManiaAction action)
|
||||||
@ -219,8 +202,6 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
: base(holdNote.HitObject.Tail, action)
|
: base(holdNote.HitObject.Tail, action)
|
||||||
{
|
{
|
||||||
this.holdNote = holdNote;
|
this.holdNote = holdNote;
|
||||||
|
|
||||||
GlowPiece.Alpha = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void CheckForJudgements(bool userTriggered, double timeOffset)
|
protected override void CheckForJudgements(bool userTriggered, double timeOffset)
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
// 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.Extensions.Color4Extensions;
|
||||||
using OpenTK.Graphics;
|
using OpenTK.Graphics;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Input.Bindings;
|
using osu.Framework.Input.Bindings;
|
||||||
using osu.Game.Rulesets.Mania.Judgements;
|
using osu.Game.Rulesets.Mania.Judgements;
|
||||||
using osu.Game.Rulesets.Mania.Objects.Drawables.Pieces;
|
using osu.Game.Rulesets.Mania.Objects.Drawables.Pieces;
|
||||||
@ -16,9 +18,6 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DrawableNote : DrawableManiaHitObject<Note>, IKeyBindingHandler<ManiaAction>
|
public class DrawableNote : DrawableManiaHitObject<Note>, IKeyBindingHandler<ManiaAction>
|
||||||
{
|
{
|
||||||
protected readonly GlowPiece GlowPiece;
|
|
||||||
|
|
||||||
private readonly LaneGlowPiece laneGlowPiece;
|
|
||||||
private readonly NotePiece headPiece;
|
private readonly NotePiece headPiece;
|
||||||
|
|
||||||
public DrawableNote(Note hitObject, ManiaAction action)
|
public DrawableNote(Note hitObject, ManiaAction action)
|
||||||
@ -27,14 +26,11 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
RelativeSizeAxes = Axes.X;
|
RelativeSizeAxes = Axes.X;
|
||||||
AutoSizeAxes = Axes.Y;
|
AutoSizeAxes = Axes.Y;
|
||||||
|
|
||||||
|
CornerRadius = 5;
|
||||||
|
Masking = true;
|
||||||
|
|
||||||
InternalChildren = new Drawable[]
|
InternalChildren = new Drawable[]
|
||||||
{
|
{
|
||||||
laneGlowPiece = new LaneGlowPiece
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre
|
|
||||||
},
|
|
||||||
GlowPiece = new GlowPiece(),
|
|
||||||
headPiece = new NotePiece
|
headPiece = new NotePiece
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
@ -49,9 +45,14 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
base.AccentColour = value;
|
base.AccentColour = value;
|
||||||
laneGlowPiece.AccentColour = AccentColour;
|
|
||||||
GlowPiece.AccentColour = AccentColour;
|
|
||||||
headPiece.AccentColour = AccentColour;
|
headPiece.AccentColour = AccentColour;
|
||||||
|
|
||||||
|
EdgeEffect = new EdgeEffectParameters
|
||||||
|
{
|
||||||
|
Type = EdgeEffectType.Glow,
|
||||||
|
Colour = AccentColour.Lighten(1f).Opacity(0.6f),
|
||||||
|
Radius = 10,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,8 +123,8 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables.Pieces
|
|||||||
if (!IsLoaded)
|
if (!IsLoaded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
foreground.Colour = AccentColour.Opacity(0.4f);
|
foreground.Colour = AccentColour.Opacity(0.8f);
|
||||||
background.Colour = AccentColour.Opacity(0.2f);
|
background.Colour = AccentColour.Opacity(0.5f);
|
||||||
|
|
||||||
subtractionCache.Invalidate();
|
subtractionCache.Invalidate();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user