mirror of
https://github.com/ppy/osu.git
synced 2024-11-20 08:12:54 +08:00
33 lines
1014 B
C#
33 lines
1014 B
C#
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
|||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
|||
|
|
|||
|
using osu.Game.Rulesets.Objects.Types;
|
|||
|
using OpenTK;
|
|||
|
|
|||
|
namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||
|
{
|
|||
|
public class DrawableSliderHead : DrawableHitCircle
|
|||
|
{
|
|||
|
private readonly Slider slider;
|
|||
|
|
|||
|
public DrawableSliderHead(Slider slider, HitCircle h)
|
|||
|
: base(h)
|
|||
|
{
|
|||
|
this.slider = slider;
|
|||
|
|
|||
|
Position = HitObject.Position - slider.Position;
|
|||
|
}
|
|||
|
|
|||
|
protected override void Update()
|
|||
|
{
|
|||
|
base.Update();
|
|||
|
|
|||
|
double completionProgress = MathHelper.Clamp((Time.Current - slider.StartTime) / slider.Duration, 0, 1);
|
|||
|
|
|||
|
//todo: we probably want to reconsider this before adding scoring, but it looks and feels nice.
|
|||
|
if (!IsHit)
|
|||
|
Position = slider.CurvePositionAt(completionProgress);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|