1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-18 23:57:22 +08:00

Merge pull request #140 from Tom94/better-clocks

Better clocks
This commit is contained in:
Dean Herbert 2016-11-07 02:57:12 +09:00 committed by GitHub
commit 7989090f51
15 changed files with 49 additions and 60 deletions

@ -1 +1 @@
Subproject commit ed33cc48996e9b57093c4d057aa0560319495dee
Subproject commit 4631a91f00e8be3eddf13736b5ecd8d25d6d3918

View File

@ -75,7 +75,9 @@
<Name>osu.Game.Resources</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
<ItemGroup>
<Compile Include="Beatmaps\IO\OszArchiveReaderTest.cs" />
<Compile Include="Beatmaps\IO\ImportBeatmapTest.cs" />
@ -86,4 +88,4 @@
<EmbeddedResource Include="Resources\Soleily - Renatus %28Gamu%29 [Insane].osu" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
</Project>

View File

@ -52,7 +52,7 @@ namespace osu.Game.Beatmaps.Objects
if (AllowHit?.Invoke(this) == false)
return false;
HitTime = Time;
HitTime = Time.Current;
State = ArmedState.Armed;
return true;
@ -70,7 +70,7 @@ namespace osu.Game.Beatmaps.Objects
{
base.Update();
if (Time >= HitObject.EndTime && !counted)
if (Time.Current >= HitObject.EndTime && !counted)
{
counted = true;
if (state == ArmedState.Armed)

View File

@ -96,7 +96,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable
approachCircle.Transforms.Add(new TransformScale { StartTime = t - 1000, EndTime = t, StartValue = new Vector2(2f), EndValue = new Vector2(0.6f) });
//set transform delay to t==hitTime
Delay(t - Time, true);
Delay(t - Time.Current, true);
approachCircle.FadeOut();
glow.FadeOut(400);
@ -331,7 +331,7 @@ namespace osu.Game.Beatmaps.Objects.Osu.Drawable
base.Update();
foreach (Framework.Graphics.Drawable d in Children)
d.Position -= new Vector2(0, (float)(d.Scale.X * (Clock.ElapsedFrameTime / 2880)));
d.Position -= new Vector2(0, (float)(d.Scale.X * (Time.Elapsed / 2880)));
}
}
}

View File

@ -112,7 +112,7 @@ namespace osu.Game.GameModes.Menu
icon.ScaleTo(1, 500, EasingTypes.OutElasticHalf);
double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
double startTime = Time + offset;
double startTime = Time.Current + offset;
icon.RotateTo(10, offset, EasingTypes.InOutSine);
icon.ScaleTo(new Vector2(1, 0.9f), offset, EasingTypes.Out);

View File

@ -205,8 +205,13 @@ namespace osu.Game.GameModes.Play
private void updateCount(ulong value, bool rolling = false)
{
ulong prevCount = count;
count = value;
if (!IsLoaded)
return;
ulong prevCount = count;
if (!rolling)
{
Flush(false, typeof(TransformComboRoll));
@ -229,17 +234,14 @@ namespace osu.Game.GameModes.Play
{
Flush(false, typeof(TransformComboRoll));
if (Clock == null)
return;
if (RollingDuration < 1)
{
DisplayedCount = Count;
return;
}
transform.StartTime = Time;
transform.EndTime = Time + getProportionalDuration(currentValue, newValue);
transform.StartTime = Time.Current;
transform.EndTime = Time.Current + getProportionalDuration(currentValue, newValue);
transform.StartValue = currentValue;
transform.EndValue = newValue;
transform.Easing = RollingEasing;
@ -253,7 +255,7 @@ namespace osu.Game.GameModes.Play
{
get
{
double time = CurrentTime ?? 0;
double time = Time?.Current ?? 0;
if (time < StartTime) return StartValue;
if (time >= EndTime) return EndValue;

View File

@ -45,7 +45,7 @@ namespace osu.Game.GameModes.Play
{
get
{
double time = CurrentTime ?? 0;
double time = Time?.Current ?? 0;
if (time < StartTime) return StartValue;
if (time >= EndTime) return EndValue;

View File

@ -31,9 +31,9 @@ namespace osu.Game.GameModes.Play.Mania
protected override float PopOutInitialAlpha => 1.0f;
protected override double PopOutDuration => 300;
protected override void Load(BaseGame game)
protected override void LoadComplete()
{
base.Load(game);
base.LoadComplete();
PopOutSpriteText.Anchor = Anchor.BottomCentre;
PopOutSpriteText.Origin = Anchor.Centre;

View File

@ -123,8 +123,6 @@ namespace osu.Game.Graphics.UserInterface
{
base.Load(game);
Flush(false, TransformType);
DisplayedCount = Count;
DisplayedCountSpriteText.Text = FormatCount(count);
@ -132,6 +130,13 @@ namespace osu.Game.Graphics.UserInterface
DisplayedCountSpriteText.Origin = this.Origin;
}
protected override void LoadComplete()
{
base.LoadComplete();
Flush(false, TransformType);
}
/// <summary>
/// Sets count value, bypassing rollover animation.
/// </summary>
@ -211,9 +216,6 @@ namespace osu.Game.Graphics.UserInterface
Flush(false, type);
if (Clock == null)
return;
if (RollingDuration < 1)
{
DisplayedCount = Count;
@ -225,8 +227,8 @@ namespace osu.Game.Graphics.UserInterface
? GetProportionalDuration(currentValue, newValue)
: RollingDuration;
transform.StartTime = Time;
transform.EndTime = Time + rollingTotalDuration;
transform.StartTime = Time.Current;
transform.EndTime = Time.Current + rollingTotalDuration;
transform.StartValue = currentValue;
transform.EndValue = newValue;
transform.Easing = RollingEasing;

View File

@ -60,7 +60,7 @@ namespace osu.Game.Graphics.UserInterface
{
get
{
double time = CurrentTime ?? 0;
double time = Time?.Current ?? 0;
if (time < StartTime) return StartValue;
if (time >= EndTime) return EndValue;

View File

@ -50,7 +50,7 @@ namespace osu.Game.Graphics.UserInterface
{
get
{
double elapsedTime = Time - transformStartTime;
double elapsedTime = Time.Current - transformStartTime;
double expectedElapsedTime = Math.Abs(prevCount - count) * animationDelay;
if (elapsedTime >= expectedElapsedTime)
return count;
@ -70,14 +70,16 @@ namespace osu.Game.Graphics.UserInterface
{
return count;
}
set
{
prevCount = VisibleValue;
count = value;
if (IsLoaded)
{
transformCount(prevCount, count);
prevCount = VisibleValue;
transformCount(prevCount, value);
}
count = value;
}
}
@ -149,7 +151,7 @@ namespace osu.Game.Graphics.UserInterface
public void StopAnimation()
{
prevCount = count;
transformStartTime = Time;
transformStartTime = Time.Current;
for (int i = 0; i < MaxStars; i++)
transformStarQuick(i, count);
@ -188,7 +190,7 @@ namespace osu.Game.Graphics.UserInterface
transformStar(i, newValue);
stars[i].DelayReset();
}
transformStartTime = Time;
transformStartTime = Time.Current;
}
}
}

View File

@ -67,21 +67,12 @@ namespace osu.Game.Graphics.UserInterface.Volume
base.Dispose(isDisposing);
}
protected override bool OnWheelDown(InputState state)
protected override bool OnWheel(InputState state)
{
if (!IsVisible)
return false;
volumeMeterMaster.TriggerWheelDown(state);
return true;
}
protected override bool OnWheelUp(InputState state)
{
if (!IsVisible)
return false;
volumeMeterMaster.TriggerWheelUp(state);
volumeMeterMaster.TriggerWheel(state);
return true;
}

View File

@ -14,13 +14,7 @@ namespace osu.Game.Graphics.UserInterface.Volume
{
public Action ActivateRequested;
protected override bool OnWheelDown(InputState state)
{
ActivateRequested?.Invoke();
return true;
}
protected override bool OnWheelUp(InputState state)
protected override bool OnWheel(InputState state)
{
ActivateRequested?.Invoke();
return true;

View File

@ -57,9 +57,9 @@ namespace osu.Game.Graphics.UserInterface.Volume
};
}
protected override void Load(BaseGame game)
protected override void LoadComplete()
{
base.Load(game);
base.LoadComplete();
updateFill();
}
@ -73,15 +73,9 @@ namespace osu.Game.Graphics.UserInterface.Volume
}
}
protected override bool OnWheelUp(InputState state)
protected override bool OnWheel(InputState state)
{
Volume += 0.05f;
return true;
}
protected override bool OnWheelDown(InputState state)
{
Volume -= 0.05f;
Volume += 0.05f * state.Mouse.WheelDiff;
return true;
}

View File

@ -101,11 +101,13 @@ namespace osu.Game.Overlays
protected override void PopIn()
{
MoveToX(0, 300, EasingTypes.Out);
FadeTo(1, 300);
}
protected override void PopOut()
{
MoveToX(-width, 300, EasingTypes.Out);
FadeTo(0, 300);
}
}
}