diff options
Diffstat (limited to 'core/src/ch/asynk')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/hud/ActionButtons.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/core/src/ch/asynk/tankontank/game/hud/ActionButtons.java b/core/src/ch/asynk/tankontank/game/hud/ActionButtons.java index a838ff9..f32c44d 100644 --- a/core/src/ch/asynk/tankontank/game/hud/ActionButtons.java +++ b/core/src/ch/asynk/tankontank/game/hud/ActionButtons.java @@ -1,5 +1,6 @@ package ch.asynk.tankontank.game.hud; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; @@ -7,7 +8,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import ch.asynk.tankontank.game.Ctrl; import ch.asynk.tankontank.game.State.StateType; -public class ActionButtons extends Bg +public class ActionButtons extends Widget { public static int PADDING = 5; @@ -30,6 +31,7 @@ public class ActionButtons extends Bg public int b; } + private Sprite bg; private int idx; private Bg buttons []; private StateType states []; @@ -37,7 +39,7 @@ public class ActionButtons extends Bg public ActionButtons(Ctrl ctrl, TextureAtlas atlas) { - super(atlas.findRegion("disabled")); + this.bg = new Sprite(atlas.findRegion("disabled")); this.ctrl = ctrl; this.visible = false; this.position = Position.BOTTOM_RIGHT; @@ -58,14 +60,18 @@ public class ActionButtons extends Bg @Override public void dispose() { - super.dispose(); for (int i = 0; i < Buttons.LAST.i; i++) buttons[i].dispose(); } - public void setPosition(Position position) + public void updatePosition() { - this.position = position; + if (!visible) return; + float dx = (position.getX(rect.width) - rect.x); + float dy = (position.getY(rect.height) - rect.y); + translate(dx, dy); + for (int i = 0; i < Buttons.LAST.i; i++) + buttons[i].translate(dx, dy); } public void hide() @@ -155,7 +161,7 @@ public class ActionButtons extends Bg public void draw(Batch batch) { if (!visible) return; - super.draw(batch); + batch.draw(bg, rect.x, rect.y, rect.width, rect.height); for (int i = 0; i < Buttons.LAST.i; i++) buttons[i].draw(batch); } |