From 83b0bae55041d0fff8a21c73ac94613de68742ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Wed, 17 Dec 2014 16:10:01 +0100 Subject: add /LabelStack --- .../ch/asynk/tankontank/game/hud/LabelStack.java | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 core/src/ch/asynk/tankontank/game/hud/LabelStack.java diff --git a/core/src/ch/asynk/tankontank/game/hud/LabelStack.java b/core/src/ch/asynk/tankontank/game/hud/LabelStack.java new file mode 100644 index 0000000..cbdcacf --- /dev/null +++ b/core/src/ch/asynk/tankontank/game/hud/LabelStack.java @@ -0,0 +1,72 @@ +package ch.asynk.tankontank.game.hud; + +import java.util.ArrayDeque; + +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.g2d.BitmapFont; + +import ch.asynk.tankontank.engine.gfx.Animation; + +public class LabelStack extends Label implements Animation +{ + class MsgInfo + { + String text; + float duration; + Position position; + MsgInfo(String text, float duration, Position position) + { + this.text = text; + this.duration = duration; + this.position = position; + } + } + + private float duration; + private float elapsed; + private ArrayDeque stack; + + public LabelStack(BitmapFont font, float padding) + { + super(font, padding); + this.visible = false; + this.stack = new ArrayDeque(); + } + + public void pushWrite(String text, float duration, Position position) + { + if (visible) + stack.push(new MsgInfo(text, duration, position)); + else + write(text, duration, position); + } + + public void write(String text, float duration, Position position) + { + this.position = position; + write(text, duration); + } + + public void write(String text, float duration) + { + this.duration = duration; + this.visible = true; + this.elapsed = 0f; + write(text); + } + + @Override + public boolean animate(float delta) + { + if (!visible) return true; + elapsed += delta; + if (elapsed >= duration) { + visible = false; + if (stack.size() > 0) { + MsgInfo info = stack.pop(); + write(info.text, info.duration, info.position); + } + } + return false; + } +} -- cgit v1.1-2-g2b99