Make sure that the clock is only updated once per time value

This commit is contained in:
smoogipoo
2017-11-13 19:02:53 +09:00
parent 0cec51110a
commit 495155874c
2 changed files with 9 additions and 2 deletions

View File

@ -76,6 +76,8 @@ namespace osu.Game.Rulesets.UI
#region Clock control #region Clock control
protected override bool ShouldProcessClock => false; // We handle processing the clock ourselves
private ManualClock clock; private ManualClock clock;
private IFrameBasedClock parentClock; private IFrameBasedClock parentClock;
@ -148,10 +150,15 @@ namespace osu.Game.Rulesets.UI
} }
clock.CurrentTime = newTime.Value; clock.CurrentTime = newTime.Value;
Clock.ProcessFrame();
} }
requireMoreUpdateLoops = clock.CurrentTime != parentClock.CurrentTime; requireMoreUpdateLoops = clock.CurrentTime != parentClock.CurrentTime;
// The manual clock time has changed in the above code. The framed clock now needs to be updated
// to ensure that the its time is valid for our children before input is processed
Clock.ProcessFrame();
// Process input
base.Update(); base.Update();
} }