mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-22 12:58:33 +01:00
fixed progress bars overshooting their ninepatch areas
This commit is contained in:
parent
b44ae420fc
commit
026b79b61e
2 changed files with 21 additions and 2 deletions
|
@ -36,8 +36,10 @@ namespace MLEM.Ui.Elements {
|
||||||
batch.Draw(this.Texture, this.DisplayArea, this.Color * alpha, this.Scale);
|
batch.Draw(this.Texture, this.DisplayArea, this.Color * alpha, this.Scale);
|
||||||
|
|
||||||
var percentage = this.CurrentValue / this.MaxValue;
|
var percentage = this.CurrentValue / this.MaxValue;
|
||||||
var width = (percentage * this.DisplayArea.Width).Floor();
|
var padHor = this.ProgressTexture != null ? (this.ProgressTexture.PaddingLeft + this.ProgressTexture.PaddingRight) * this.Scale : 0;
|
||||||
var height = (percentage * this.DisplayArea.Height).Floor();
|
var padVer = this.ProgressTexture != null ? (this.ProgressTexture.PaddingTop + this.ProgressTexture.PaddingBottom) * this.Scale : 0;
|
||||||
|
var width = (percentage * (this.DisplayArea.Width - padHor) + padHor).Floor();
|
||||||
|
var height = (percentage * (this.DisplayArea.Height - padVer) + padVer).Floor();
|
||||||
Rectangle progressArea;
|
Rectangle progressArea;
|
||||||
switch (this.Direction) {
|
switch (this.Direction) {
|
||||||
case Direction2.Up:
|
case Direction2.Up:
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
|
using System;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using MLEM.Cameras;
|
using MLEM.Cameras;
|
||||||
using MLEM.Extended.Extensions;
|
using MLEM.Extended.Extensions;
|
||||||
using MLEM.Extended.Tiled;
|
using MLEM.Extended.Tiled;
|
||||||
using MLEM.Font;
|
using MLEM.Font;
|
||||||
|
using MLEM.Misc;
|
||||||
using MLEM.Startup;
|
using MLEM.Startup;
|
||||||
using MLEM.Textures;
|
using MLEM.Textures;
|
||||||
using MLEM.Ui;
|
using MLEM.Ui;
|
||||||
|
@ -17,6 +19,7 @@ namespace Sandbox {
|
||||||
private Camera camera;
|
private Camera camera;
|
||||||
private TiledMap map;
|
private TiledMap map;
|
||||||
private IndividualTiledMapRenderer mapRenderer;
|
private IndividualTiledMapRenderer mapRenderer;
|
||||||
|
private ProgressBar progress;
|
||||||
|
|
||||||
public GameImpl() {
|
public GameImpl() {
|
||||||
this.IsMouseVisible = true;
|
this.IsMouseVisible = true;
|
||||||
|
@ -49,6 +52,20 @@ namespace Sandbox {
|
||||||
this.UiSystem.Add("Root", root);
|
this.UiSystem.Add("Root", root);
|
||||||
var group = root.AddChild(new CustomDrawGroup(Anchor.AutoLeft, new Vector2(1, 10)));
|
var group = root.AddChild(new CustomDrawGroup(Anchor.AutoLeft, new Vector2(1, 10)));
|
||||||
group.AddChild(new Button(Anchor.AutoLeft, Vector2.One, "Test text"));
|
group.AddChild(new Button(Anchor.AutoLeft, Vector2.One, "Test text"));
|
||||||
|
|
||||||
|
this.progress = new ProgressBar(Anchor.Center, new Vector2(0.8F, 0.5F), Direction2.Down, 1) {
|
||||||
|
HasCustomStyle = true,
|
||||||
|
Texture = new NinePatch(new TextureRegion(tex, 0, 8, 24, 24), 8),
|
||||||
|
Color = Color.White,
|
||||||
|
ProgressTexture = new NinePatch(new TextureRegion(tex, 24, 8, 16, 16), 4),
|
||||||
|
ProgressColor = Color.White
|
||||||
|
};
|
||||||
|
this.UiSystem.Add("Progress", this.progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Update(GameTime gameTime) {
|
||||||
|
base.Update(gameTime);
|
||||||
|
this.progress.CurrentValue = (float) (Math.Sin(gameTime.TotalGameTime.TotalSeconds/2) + 1) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void DoDraw(GameTime gameTime) {
|
protected override void DoDraw(GameTime gameTime) {
|
||||||
|
|
Loading…
Reference in a new issue