mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 00:40:09 +09:00
Split click and hover and disable click debounce
This commit is contained in:
@ -21,6 +21,11 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
private SampleChannel sampleClick;
|
private SampleChannel sampleClick;
|
||||||
private readonly MouseButton[] buttons;
|
private readonly MouseButton[] buttons;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Length of debounce for click sound playback, in milliseconds. Default is 0ms.
|
||||||
|
/// </summary>
|
||||||
|
public double ClickDebounceTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// a container which plays sounds on hover and click for any specified <see cref="MouseButton"/>s.
|
/// a container which plays sounds on hover and click for any specified <see cref="MouseButton"/>s.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -43,10 +48,10 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
|
|
||||||
if (buttons.Contains(e.Button) && Contains(e.ScreenSpaceMousePosition))
|
if (buttons.Contains(e.Button) && Contains(e.ScreenSpaceMousePosition))
|
||||||
{
|
{
|
||||||
if (DebounceTime <= 0)
|
if (ClickDebounceTime <= 0)
|
||||||
sampleClick?.Play();
|
sampleClick?.Play();
|
||||||
else
|
else
|
||||||
playDelegate = Scheduler.AddDelayed(() => sampleClick?.Play(), DebounceTime);
|
playDelegate = Scheduler.AddDelayed(() => sampleClick?.Play(), ClickDebounceTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.OnClick(e);
|
return base.OnClick(e);
|
||||||
|
@ -22,9 +22,9 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
private SampleChannel sampleHover;
|
private SampleChannel sampleHover;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Length of debounce for sound playback, in milliseconds. Default is 50ms.
|
/// Length of debounce for hover sound playback, in milliseconds. Default is 50ms.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double DebounceTime { get; set; } = 50;
|
public double HoverDebounceTime { get; set; } = 50;
|
||||||
|
|
||||||
protected readonly HoverSampleSet SampleSet;
|
protected readonly HoverSampleSet SampleSet;
|
||||||
|
|
||||||
@ -40,10 +40,10 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
{
|
{
|
||||||
playDelegate?.Cancel();
|
playDelegate?.Cancel();
|
||||||
|
|
||||||
if (DebounceTime <= 0)
|
if (HoverDebounceTime <= 0)
|
||||||
sampleHover?.Play();
|
sampleHover?.Play();
|
||||||
else
|
else
|
||||||
playDelegate = Scheduler.AddDelayed(() => sampleHover?.Play(), DebounceTime);
|
playDelegate = Scheduler.AddDelayed(() => sampleHover?.Play(), HoverDebounceTime);
|
||||||
|
|
||||||
return base.OnHover(e);
|
return base.OnHover(e);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user