mirror of https://github.com/ppy/osu
Change from click to mousedown+mouseup and only play when cursor is visible
This commit is contained in:
parent
4d9b61212b
commit
6e60e68b80
|
@ -76,18 +76,6 @@ protected override bool OnMouseMove(MouseMoveEvent e)
|
||||||
return base.OnMouseMove(e);
|
return base.OnMouseMove(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnClick(ClickEvent e)
|
|
||||||
{
|
|
||||||
var channel = tapSample.GetChannel();
|
|
||||||
|
|
||||||
// scale to [-0.75, 0.75] so that the sample isn't fully panned left or right (sounds weird)
|
|
||||||
channel.Balance.Value = ((activeCursor.X / DrawWidth) * 2 - 1) * 0.75;
|
|
||||||
channel.Frequency.Value = 0.99 + RNG.NextDouble(0.02);
|
|
||||||
channel.Play();
|
|
||||||
|
|
||||||
return base.OnClick(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool OnMouseDown(MouseDownEvent e)
|
protected override bool OnMouseDown(MouseDownEvent e)
|
||||||
{
|
{
|
||||||
if (State.Value == Visibility.Visible)
|
if (State.Value == Visibility.Visible)
|
||||||
|
@ -105,6 +93,8 @@ protected override bool OnMouseDown(MouseDownEvent e)
|
||||||
dragRotationState = DragRotationState.DragStarted;
|
dragRotationState = DragRotationState.DragStarted;
|
||||||
positionMouseDown = e.MousePosition;
|
positionMouseDown = e.MousePosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playTapSample();
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.OnMouseDown(e);
|
return base.OnMouseDown(e);
|
||||||
|
@ -122,6 +112,9 @@ protected override void OnMouseUp(MouseUpEvent e)
|
||||||
activeCursor.RotateTo(0, 600 * (1 + Math.Abs(activeCursor.Rotation / 720)), Easing.OutElasticHalf);
|
activeCursor.RotateTo(0, 600 * (1 + Math.Abs(activeCursor.Rotation / 720)), Easing.OutElasticHalf);
|
||||||
dragRotationState = DragRotationState.NotDragging;
|
dragRotationState = DragRotationState.NotDragging;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (State.Value == Visibility.Visible)
|
||||||
|
playTapSample(0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnMouseUp(e);
|
base.OnMouseUp(e);
|
||||||
|
@ -139,6 +132,18 @@ protected override void PopOut()
|
||||||
activeCursor.ScaleTo(0.6f, 250, Easing.In);
|
activeCursor.ScaleTo(0.6f, 250, Easing.In);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void playTapSample(double baseFrequency = 1f)
|
||||||
|
{
|
||||||
|
const float random_range = 0.02f;
|
||||||
|
SampleChannel channel = tapSample.GetChannel();
|
||||||
|
|
||||||
|
// Scale to [-0.75, 0.75] so that the sample isn't fully panned left or right (sounds weird)
|
||||||
|
channel.Balance.Value = ((activeCursor.X / DrawWidth) * 2 - 1) * 0.75;
|
||||||
|
channel.Frequency.Value = baseFrequency - (random_range / 2f) + RNG.NextDouble(random_range);
|
||||||
|
|
||||||
|
channel.Play();
|
||||||
|
}
|
||||||
|
|
||||||
public class Cursor : Container
|
public class Cursor : Container
|
||||||
{
|
{
|
||||||
private Container cursorContainer;
|
private Container cursorContainer;
|
||||||
|
|
Loading…
Reference in New Issue