OneNightDuel/FNAF_Clone/GUI/TextUIElement.cs

54 lines
1.5 KiB
C#
Raw Normal View History

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using MonoGameLibrary.Graphics;
namespace FNAF_Clone.GUI;
public class TextUIElement : UIElement {
public SpriteFont Font { get; set; }
public string Text{ get; set; } = "";
public Color Color{ get; set; } = Color.White;
private Vector2 origin;
public TextUIElement(Point corner1, SpriteFont font, Alignment alignment = Alignment.LEFT) : base(corner1, corner1) {
Font = font;
Align(alignment);
}
public override void Draw(SpriteBatch spriteBatch) {
base.Draw(spriteBatch);
align();
spriteBatch.DrawString(Font, Text, screenSpaceBounds.Item1.ToVector2(), Color, 0, origin, ScaleMultiplier, SpriteEffects.None, 0);
}
public void Align(Alignment alignment) {
switch (alignment){
case Alignment.LEFT:
AlignLeft();
break;
case Alignment.RIGHT:
AlignRight();
break;
case Alignment.CENTER:
AlignCenter();
break;
}
}
private void AlignLeft() {
align = () => origin = Vector2.Zero;
}
private void AlignRight() {
align = () => origin = Font.MeasureString(Text);
}
private void AlignCenter() {
align = () => origin = Font.MeasureString(Text) / 2;
}
private Action align;
public enum Alignment {
LEFT, RIGHT, CENTER
}
}