Change main menu buttons to be activate OnClick.

This commit is contained in:
Dean Herbert 2017-02-07 20:29:26 +09:00
parent f060eb07dd
commit e2f680a65f
No known key found for this signature in database
GPG Key ID: 46D71BF4958ABB49
2 changed files with 30 additions and 6 deletions

View File

@ -27,6 +27,8 @@ public class Button : Container, IStateful<ButtonState>
{
private Container iconText;
private Container box;
private Box boxColourLayer;
private Box boxHoverLayer;
private Color4 colour;
private TextAwesome icon;
private string internalName;
@ -72,16 +74,24 @@ public Button(string text, string internalName, FontAwesome symbol, Color4 colou
},
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Colour = colour,
Scale = new Vector2(0, 1),
Size = boxSize,
Shear = new Vector2(ButtonSystem.WEDGE_WIDTH / boxSize.Y, 0),
Children = new Drawable[]
Children = new []
{
new Box
boxColourLayer = new Box
{
EdgeSmoothness = new Vector2(1.5f, 0),
RelativeSizeAxes = Axes.Both,
Colour = colour,
},
boxHoverLayer = new Box
{
EdgeSmoothness = new Vector2(1.5f, 0),
RelativeSizeAxes = Axes.Both,
BlendingMode = BlendingMode.Additive,
Colour = Color4.White,
Alpha = 0,
},
}
},
@ -228,6 +238,18 @@ private void load(AudioManager audio)
}
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args)
{
boxHoverLayer.FadeTo(0.1f, 1000, EasingTypes.OutQuint);
return base.OnMouseDown(state, args);
}
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args)
{
boxHoverLayer.FadeTo(0, 1000, EasingTypes.OutQuint);
return base.OnMouseUp(state, args);
}
protected override bool OnClick(InputState state)
{
trigger();
return true;
@ -250,7 +272,9 @@ private void trigger()
{
sampleClick.Play();
box.FlashColour(Color4.White, 500, EasingTypes.OutExpo);
boxHoverLayer.ClearTransformations();
boxHoverLayer.Alpha = 0.9f;
boxHoverLayer.FadeOut(800, EasingTypes.OutExpo);
clickAction?.Invoke();
}

View File

@ -172,10 +172,10 @@ private void onOsuLogo()
State = MenuState.TopLevel;
return;
case MenuState.TopLevel:
buttonsTopLevel.First().TriggerMouseDown();
buttonsTopLevel.First().TriggerClick();
return;
case MenuState.Play:
buttonsPlay.First().TriggerMouseDown();
buttonsPlay.First().TriggerClick();
return;
}
}