diff options
Diffstat (limited to 'core/src/ch/asynk/tankontank')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/hud/Msg.java | 79 |
1 files changed, 24 insertions, 55 deletions
diff --git a/core/src/ch/asynk/tankontank/game/hud/Msg.java b/core/src/ch/asynk/tankontank/game/hud/Msg.java index 765a429..5675016 100644 --- a/core/src/ch/asynk/tankontank/game/hud/Msg.java +++ b/core/src/ch/asynk/tankontank/game/hud/Msg.java @@ -5,11 +5,9 @@ import java.util.ArrayDeque; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; -import ch.asynk.tankontank.TankOnTank; - -public class Msg extends Bg +public class Msg extends Label { class MsgInfo { @@ -24,21 +22,16 @@ public class Msg extends Bg } } - private BitmapFont font; - private String text; - private int padding; - private float x; - private float y; + private Bg bg; private float duration; private float elapsed; - private boolean visible; private ArrayDeque<MsgInfo> stack; - public Msg(BitmapFont font, TextureRegion region) + public Msg(BitmapFont font, TextureRegion region, float padding) { - super(region); + super(font, padding); this.visible = false; - this.font = font; + this.bg = new Bg(region); this.stack = new ArrayDeque<MsgInfo>(); } @@ -46,65 +39,34 @@ public class Msg extends Bg public void dispose() { super.dispose(); - font.dispose(); - } - - public float getX() - { - return x; - } - - public float getY() - { - return y; + bg.dispose(); } public void pushWrite(String text, float duration, Position position) { - if (visible) { + if (visible) stack.push(new MsgInfo(text, duration, position)); - return; - } else + else write(text, duration, position); } public void write(String text, float duration, Position position) { - TextBounds b = font.getBounds(text); - float w = b.width + (2 * padding); - float h = b.height + (2 * padding); - write(text, position.getX(w), position.getY(h), duration, 10); - } - - public void setTopLeft(float x, float y, int padding) - { - TextBounds b = font.getBounds("A"); - this.x = x; - this.y = (y - (2 * padding) - b.height); - this.padding = padding; - } - - public void write(String text, float duration) - { - this.text = text; this.duration = duration; this.visible = true; this.elapsed = 0f; - TextBounds b = font.getBounds(text); - set(x, y, (b.width + (padding * 2)), (b.height + (padding * 2))); + write(text); + setPosition(position.getX(getWidth()), position.getY(getHeight())); + bg.set(rect); } - public void write(String text, float x, float y, float duration, int padding) + public void write(String text, float duration) { - this.text = text; - this.x = x; - this.y = y; this.duration = duration; - this.padding = padding; this.visible = true; this.elapsed = 0f; - TextBounds b = font.getBounds(text); - set(x, y, (b.width + (padding * 2)), (b.height + (padding * 2))); + write(text); + bg.set(rect); } public void animate(float delta) @@ -115,7 +77,6 @@ public class Msg extends Bg visible = false; if (stack.size() > 0) { MsgInfo info = stack.pop(); - TankOnTank.debug(info.text); write(info.text, info.duration, info.position); } } @@ -125,7 +86,15 @@ public class Msg extends Bg public void draw(Batch batch) { if (!visible) return; + bg.draw(batch); super.draw(batch); - font.draw(batch, text, (x + padding), (rect.y + rect.height - padding)); + } + + @Override + public void drawDebug(ShapeRenderer shapes) + { + if (!visible) return; + super.drawDebug(shapes); + bg.drawDebug(shapes); } } |