summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/tankontank/game/hud/Msg.java79
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);
}
}