1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 16:12:57 +08:00

Handle proxied approach layer better and add slider's approach circle (previously missing).

This commit is contained in:
Dean Herbert 2017-02-14 10:22:28 +09:00
parent 9a5ac64332
commit fc192906ea
5 changed files with 26 additions and 5 deletions

View File

@ -11,7 +11,7 @@ using OpenTK;
namespace osu.Game.Modes.Osu.Objects.Drawables
{
public class DrawableHitCircle : DrawableOsuHitObject
public class DrawableHitCircle : DrawableOsuHitObject, IDrawableHitObjectWithProxiedApproach
{
private HitCircle osuObject;
@ -156,5 +156,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
break;
}
}
public Drawable ProxiedLayer => ApproachCircle;
}
}

View File

@ -6,11 +6,10 @@ using osu.Framework.Graphics;
using osu.Game.Modes.Objects.Drawables;
using osu.Game.Modes.Osu.Objects.Drawables.Pieces;
using OpenTK;
using osu.Framework.Input;
namespace osu.Game.Modes.Osu.Objects.Drawables
{
class DrawableSlider : DrawableOsuHitObject
public class DrawableSlider : DrawableOsuHitObject, IDrawableHitObjectWithProxiedApproach
{
private Slider slider;
@ -133,6 +132,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
FadeOut(800);
}
public Drawable ProxiedLayer => initialCircle.ApproachCircle;
}
internal interface ISliderProgress

View File

@ -60,10 +60,10 @@ namespace osu.Game.Modes.Osu.UI
public override void Add(DrawableHitObject h)
{
h.Depth = (float)h.HitObject.StartTime;
DrawableHitCircle c = h as DrawableHitCircle;
IDrawableHitObjectWithProxiedApproach c = h as IDrawableHitObjectWithProxiedApproach;
if (c != null)
{
approachCircles.Add(c.ApproachCircle.CreateProxy());
approachCircles.Add(c.ProxiedLayer.CreateProxy());
}
h.OnJudgement += judgement;

View File

@ -0,0 +1,17 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using osu.Framework.Graphics;
namespace osu.Game.Modes.Objects.Drawables
{
public interface IDrawableHitObjectWithProxiedApproach
{
Drawable ProxiedLayer { get; }
}
}

View File

@ -75,6 +75,7 @@
<Compile Include="Graphics\UserInterface\OsuSliderBar.cs" />
<Compile Include="Graphics\UserInterface\OsuTextBox.cs" />
<Compile Include="Graphics\UserInterface\TwoLayerButton.cs" />
<Compile Include="Modes\Objects\Drawables\IDrawableHitObjectWithProxiedApproach.cs" />
<Compile Include="Modes\Objects\HitObjectParser.cs" />
<Compile Include="Modes\Score.cs" />
<Compile Include="Modes\ScoreProcesssor.cs" />