1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-26 06:28:35 +01:00

fixed an element transform issue and added a fancy button to the ui demo

This commit is contained in:
Ellpeck 2020-07-20 00:28:31 +02:00
parent ec370479ef
commit abffa4db57
2 changed files with 17 additions and 1 deletions

View file

@ -142,6 +142,22 @@ namespace Demos {
OnPressed = element => CoroutineHandler.Start(WobbleButton(element)), OnPressed = element => CoroutineHandler.Start(WobbleButton(element)),
PositionOffset = new Vector2(0, 1) PositionOffset = new Vector2(0, 1)
}); });
// Another button that shows animations!
var fancyHoverTimer = 0D;
var fancyButton = this.root.AddChild(new Button(Anchor.AutoCenter, new Vector2(0.5F, 10), "Fancy Hover") {
PositionOffset = new Vector2(0, 1),
OnUpdated = (e, time) => {
if (e.IsMouseOver && fancyHoverTimer <= 0.5F)
return;
if (fancyHoverTimer > 0) {
fancyHoverTimer -= time.ElapsedGameTime.TotalSeconds * 3;
e.ScaleTransform(1 + (float) Math.Sin(fancyHoverTimer * MathHelper.Pi) * 0.05F);
} else {
e.Transform = Matrix.Identity;
}
}
});
fancyButton.OnMouseEnter += e => fancyHoverTimer = 1;
this.root.AddChild(new Button(Anchor.AutoCenter, new Vector2(0.5F, 10), "Transform Ui", "This button causes the entire ui to be transformed (both in positioning, rotation and scale)") { this.root.AddChild(new Button(Anchor.AutoCenter, new Vector2(0.5F, 10), "Transform Ui", "This button causes the entire ui to be transformed (both in positioning, rotation and scale)") {
OnPressed = element => { OnPressed = element => {
if (element.Root.Transform == Matrix.Identity) { if (element.Root.Transform == Matrix.Identity) {

View file

@ -834,7 +834,7 @@ namespace MLEM.Ui.Elements {
public void DrawTransformed(GameTime time, SpriteBatch batch, float alpha, BlendState blendState, SamplerState samplerState, Matrix matrix) { public void DrawTransformed(GameTime time, SpriteBatch batch, float alpha, BlendState blendState, SamplerState samplerState, Matrix matrix) {
var transform = this.Transform ?? this.TransformGetter(this, time, matrix); var transform = this.Transform ?? this.TransformGetter(this, time, matrix);
var customDraw = this.BeginImpl != null || transform != Matrix.Identity; var customDraw = this.BeginImpl != null || transform != Matrix.Identity;
var mat = matrix * transform; var mat = transform * matrix;
if (customDraw) { if (customDraw) {
// end the usual draw so that we can begin our own // end the usual draw so that we can begin our own
batch.End(); batch.End();