1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-15 20:43:21 +08:00

Fixed Graph/seeking offset

This commit is contained in:
EVAST9919 2017-05-08 01:23:51 +03:00
parent 531f2c410a
commit c3a42ded36
2 changed files with 5 additions and 4 deletions

View File

@ -140,7 +140,7 @@ namespace osu.Game.Screens.Play
return; return;
double currentTime = (AudioClock?.CurrentTime ?? Time.Current) - firstHitTime; double currentTime = (AudioClock?.CurrentTime ?? Time.Current) - firstHitTime;
double progress = currentTime / lastHitTime; double progress = currentTime / (lastHitTime-firstHitTime);
bar.UpdatePosition((float)progress); bar.UpdatePosition((float)progress);
graph.Progress = (int)(graph.ColumnCount * progress); graph.Progress = (int)(graph.ColumnCount * progress);

View File

@ -20,12 +20,13 @@ namespace osu.Game.Screens.Play
const int granularity = 200; const int granularity = 200;
var firstHit = objects.First().StartTime;
var lastHit = (objects.Last() as IHasEndTime)?.EndTime ?? 0; var lastHit = (objects.Last() as IHasEndTime)?.EndTime ?? 0;
if (lastHit == 0) if (lastHit == 0)
lastHit = objects.Last().StartTime; lastHit = objects.Last().StartTime;
var interval = (lastHit + 1) / granularity; var interval = (lastHit - firstHit + 1) / granularity;
var values = new int[granularity]; var values = new int[granularity];
@ -33,8 +34,8 @@ namespace osu.Game.Screens.Play
{ {
IHasEndTime end = h as IHasEndTime; IHasEndTime end = h as IHasEndTime;
int startRange = (int)(h.StartTime / interval); int startRange = (int)((h.StartTime - firstHit)/ interval);
int endRange = (int)((end?.EndTime > 0 ? end.EndTime : h.StartTime) / interval); int endRange = (int)(((end?.EndTime > 0 ? end.EndTime : h.StartTime) - firstHit) / interval);
for (int i = startRange; i <= endRange; i++) for (int i = startRange; i <= endRange; i++)
values[i]++; values[i]++;
} }