mirror of
https://github.com/osukey/osukey.git
synced 2025-05-29 09:27:18 +09:00
Refactor to fix InterpolateMovements=false
This commit is contained in:
parent
5241029513
commit
7cc0a2a76f
@ -79,8 +79,13 @@ namespace osu.Game.Rulesets.Osu.Skinning.Legacy
|
|||||||
|
|
||||||
protected override bool OnMouseMove(MouseMoveEvent e)
|
protected override bool OnMouseMove(MouseMoveEvent e)
|
||||||
{
|
{
|
||||||
|
if (!disjointTrail)
|
||||||
|
return base.OnMouseMove(e);
|
||||||
|
|
||||||
currentPosition = e.ScreenSpaceMousePosition;
|
currentPosition = e.ScreenSpaceMousePosition;
|
||||||
return base.OnMouseMove(e);
|
|
||||||
|
// Intentionally block the base call as we're adding the trails ourselves.
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,33 +146,25 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
|
|||||||
|
|
||||||
protected override bool OnMouseMove(MouseMoveEvent e)
|
protected override bool OnMouseMove(MouseMoveEvent e)
|
||||||
{
|
{
|
||||||
Vector2 position = e.ScreenSpaceMousePosition;
|
AddTrail(e.ScreenSpaceMousePosition);
|
||||||
|
|
||||||
if (lastPosition == null)
|
|
||||||
{
|
|
||||||
lastPosition = position;
|
|
||||||
resampler.AddPosition(lastPosition.Value);
|
|
||||||
return base.OnMouseMove(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (InterpolateMovements)
|
|
||||||
AddTrail(position);
|
|
||||||
|
|
||||||
return base.OnMouseMove(e);
|
return base.OnMouseMove(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void AddTrail(Vector2 position)
|
protected void AddTrail(Vector2 position)
|
||||||
{
|
{
|
||||||
if (!lastPosition.HasValue)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (InterpolateMovements)
|
if (InterpolateMovements)
|
||||||
{
|
{
|
||||||
|
if (!lastPosition.HasValue)
|
||||||
|
{
|
||||||
|
lastPosition = position;
|
||||||
|
resampler.AddPosition(lastPosition.Value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (Vector2 pos2 in resampler.AddPosition(position))
|
foreach (Vector2 pos2 in resampler.AddPosition(position))
|
||||||
{
|
{
|
||||||
Trace.Assert(lastPosition.HasValue);
|
Trace.Assert(lastPosition.HasValue);
|
||||||
|
|
||||||
// ReSharper disable once PossibleInvalidOperationException
|
|
||||||
Vector2 pos1 = lastPosition.Value;
|
Vector2 pos1 = lastPosition.Value;
|
||||||
Vector2 diff = pos2 - pos1;
|
Vector2 diff = pos2 - pos1;
|
||||||
float distance = diff.Length;
|
float distance = diff.Length;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user