1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-22 21:40:49 +08:00

Implement sample choking/muting for ButtonSystem samples

This commit is contained in:
Jamie Taylor
2023-11-08 22:18:33 +09:00
Unverified
parent f0a1df06ac
commit f69c2ea39b
4 changed files with 26 additions and 2 deletions
+5 -1
View File
@@ -51,6 +51,7 @@ namespace osu.Game.Screens.Menu
private readonly Action clickAction;
private Sample sampleClick;
private Sample sampleHover;
private SampleChannel sampleChannel;
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => box.ReceivePositionalInputAt(screenSpacePos);
@@ -225,7 +226,8 @@ namespace osu.Game.Screens.Menu
private void trigger()
{
sampleClick?.Play();
sampleChannel = sampleClick?.GetChannel();
sampleChannel?.Play();
clickAction?.Invoke();
@@ -237,6 +239,8 @@ namespace osu.Game.Screens.Menu
public override bool HandleNonPositionalInput => state == ButtonState.Expanded;
public override bool HandlePositionalInput => state != ButtonState.Exploded && box.Scale.X >= 0.8f;
public void StopSamplePlayback() => sampleChannel?.Stop();
protected override void Update()
{
iconText.Alpha = Math.Clamp((box.Scale.X - 0.5f) / 0.3f, 0, 1);