1
0
mirror of https://github.com/ppy/osu.git synced 2026-06-08 20:04:08 +08:00

Make ScrollingHitObjectContainer handle nested hitobjects

This commit is contained in:
smoogipoo
2018-01-11 15:08:30 +09:00
Unverified
parent a6d8b28221
commit 9d00e5bb7d
8 changed files with 59 additions and 70 deletions
@@ -29,22 +29,25 @@ namespace osu.Game.Rulesets.UI.Scrolling.Algorithms
obj.LifetimeStart = obj.HitObject.StartTime - timeRange - 1000;
if (!(obj.HitObject is IHasEndTime endTime))
continue;
var diff = positionAt(endTime.EndTime, timeRange) - startPosition;
switch (direction)
if (obj.HitObject is IHasEndTime endTime)
{
case ScrollingDirection.Up:
case ScrollingDirection.Down:
obj.Height = (float)(diff * length.Y);
break;
case ScrollingDirection.Left:
case ScrollingDirection.Right:
obj.Width = (float)(diff * length.X);
break;
var diff = positionAt(endTime.EndTime, timeRange) - startPosition;
switch (direction)
{
case ScrollingDirection.Up:
case ScrollingDirection.Down:
obj.Height = (float)(diff * length.Y);
break;
case ScrollingDirection.Left:
case ScrollingDirection.Right:
obj.Width = (float)(diff * length.X);
break;
}
}
if (obj.NestedHitObjects != null)
ComputeInitialStates(obj.NestedHitObjects, direction, timeRange, length);
}
}
@@ -71,6 +74,9 @@ namespace osu.Game.Rulesets.UI.Scrolling.Algorithms
obj.X = (float)(-finalPosition * length.X);
break;
}
if (obj.NestedHitObjects != null)
ComputePositions(obj.NestedHitObjects, direction, obj.HitObject.StartTime, timeRange, length);
}
}