From 29b914438ece24938c30379b5568fae4274298bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Sun, 9 Nov 2014 01:22:53 +0100 Subject: Dialog -> OkCancel --- core/src/ch/asynk/tankontank/game/hud/Dialog.java | 80 -------------------- .../src/ch/asynk/tankontank/game/hud/OkCancel.java | 88 ++++++++++++++++++++++ 2 files changed, 88 insertions(+), 80 deletions(-) delete mode 100644 core/src/ch/asynk/tankontank/game/hud/Dialog.java create mode 100644 core/src/ch/asynk/tankontank/game/hud/OkCancel.java diff --git a/core/src/ch/asynk/tankontank/game/hud/Dialog.java b/core/src/ch/asynk/tankontank/game/hud/Dialog.java deleted file mode 100644 index ee9c62c..0000000 --- a/core/src/ch/asynk/tankontank/game/hud/Dialog.java +++ /dev/null @@ -1,80 +0,0 @@ -package ch.asynk.tankontank.game.hud; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; -import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.graphics.g2d.BitmapFont.TextBounds; - -import ch.asynk.tankontank.engine.gfx.Image; - -public class Dialog extends Bg -{ - public boolean visible; - public boolean ok; - public int padding; - private Label label; - private Image okBtn; - private Image cancelBtn; - - public Dialog(BitmapFont font, TextureRegion region, TextureAtlas atlas) - { - super(region); - this.label = new Label(font, "hello"); - this.okBtn = new Image(atlas.findRegion("ok")); - this.cancelBtn = new Image(atlas.findRegion("cancel")); - this.visible = false; - this.padding = 10; - } - - public void show(String msg, Position position) - { - label.write(msg); - TextBounds b = label.getBounds(); - - float height = (b.height + (3 * padding) + okBtn.getHeight()); - float width = (b.width + (2 * padding)); - float w2 = ((3 * padding) + okBtn.getWidth() + cancelBtn.getWidth()); - if (w2 > width) - width = w2; - float x = position.getX(width); - float y = position.getY(height); - set(x, y, width, height); - okBtn.setPosition((x + width - okBtn.getWidth() - padding), (y + padding)); - cancelBtn.setPosition((okBtn.getX() - cancelBtn.getWidth() - padding), okBtn.getY()); - label.setPosition((x + padding), (y + okBtn.getHeight() + padding)); - visible = true; - ok = false; - } - - public boolean hit(float x, float y) - { - if (okBtn.hit(x, y)) { - ok = true; - return true; - } else if (cancelBtn.hit(x, y)) { - ok = false; - return true; - } - return false; - } - - @Override - public void dispose() - { - super.dispose(); - label.dispose(); - okBtn.dispose(); - cancelBtn.dispose(); - } - - @Override - public void draw(Batch batch) - { - if (!visible) return; - super.draw(batch); - label.draw(batch); - okBtn.draw(batch); - cancelBtn.draw(batch); - } -} diff --git a/core/src/ch/asynk/tankontank/game/hud/OkCancel.java b/core/src/ch/asynk/tankontank/game/hud/OkCancel.java new file mode 100644 index 0000000..45fb572 --- /dev/null +++ b/core/src/ch/asynk/tankontank/game/hud/OkCancel.java @@ -0,0 +1,88 @@ +package ch.asynk.tankontank.game.hud; + +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; + +import ch.asynk.tankontank.engine.gfx.Image; + +public class OkCancel extends Bg +{ + public boolean ok; + public float padding; + protected Label label; + protected Image okBtn; + protected Image cancelBtn; + + public OkCancel(BitmapFont font, TextureRegion region, TextureAtlas atlas, float padding) + { + super(region); + this.label = new Label(font); + this.okBtn = new Image(atlas.findRegion("ok")); + this.cancelBtn = new Image(atlas.findRegion("cancel")); + this.visible = false; + this.padding = padding; + } + + public void show(String msg, Position position) + { + label.write(msg); + + float height = (label.getHeight() + (4 * padding) + okBtn.getHeight()); + float width = (label.getWidth() + (2 * padding)); + float w2 = ((3 * padding) + okBtn.getWidth() + cancelBtn.getWidth()); + if (w2 > width) + width = w2; + float x = position.getX(width); + float y = position.getY(height); + set(x, y, width, height); + okBtn.setPosition((x + width - okBtn.getWidth() - padding), (y + padding)); + cancelBtn.setPosition((okBtn.getX() - cancelBtn.getWidth() - padding), okBtn.getY()); + label.setPosition((x + padding), (y + okBtn.getHeight() + (2 * padding))); + visible = true; + ok = false; + } + + public boolean hit(float x, float y) + { + if (okBtn.hit(x, y)) { + ok = true; + return true; + } else if (cancelBtn.hit(x, y)) { + ok = false; + return true; + } + return false; + } + + @Override + public void dispose() + { + super.dispose(); + label.dispose(); + okBtn.dispose(); + cancelBtn.dispose(); + } + + @Override + public void draw(Batch batch) + { + if (!visible) return; + super.draw(batch); + label.draw(batch); + okBtn.draw(batch); + cancelBtn.draw(batch); + } + + @Override + public void drawDebug(ShapeRenderer shapes) + { + if (!visible) return; + super.drawDebug(shapes); + label.drawDebug(shapes); + okBtn.drawDebug(shapes); + cancelBtn.drawDebug(shapes); + } +} -- cgit v1.1-2-g2b99