diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-12-17 16:47:38 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-12-17 16:47:38 +0100 |
commit | 0bfea1c03f0ab6fef63e29e8aa08954fb1bb7bfa (patch) | |
tree | d743c448d207b3789b09d80936490bf5baee3f1b /core | |
parent | b525ed807067c70af353ef8beca34135986e8bc3 (diff) | |
download | RustAndDust-0bfea1c03f0ab6fef63e29e8aa08954fb1bb7bfa.zip RustAndDust-0bfea1c03f0ab6fef63e29e8aa08954fb1bb7bfa.tar.gz |
UnitDock: add translate()
Diffstat (limited to 'core')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/hud/UnitDock.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/src/ch/asynk/tankontank/game/hud/UnitDock.java b/core/src/ch/asynk/tankontank/game/hud/UnitDock.java index de69004..87a9a8d 100644 --- a/core/src/ch/asynk/tankontank/game/hud/UnitDock.java +++ b/core/src/ch/asynk/tankontank/game/hud/UnitDock.java @@ -20,12 +20,10 @@ public class UnitDock extends Bg implements Animation private static final float STEP = 5f; private final Ctrl ctrl; - private float padding; private float y; private float to; private float dx; private float step; - private Position position; private boolean show; private boolean mvtDone; public Unit selectedUnit; @@ -36,9 +34,9 @@ public class UnitDock extends Bg implements Animation private Matrix4 transform; private Rectangle scaledRect; - public UnitDock(Ctrl ctrl, TextureRegion bg, TextureRegion selected, float padding) + public UnitDock(Ctrl ctrl, TextureRegion region, TextureRegion selected, float padding) { - super(bg); + super(region); this.ctrl = ctrl; this.padding = padding; this.mvtDone = true; @@ -50,6 +48,24 @@ public class UnitDock extends Bg implements Animation this.visible = false; } + @Override + public void translate(float _dx, float _dy) + { + this.y += _dy; + if (!visible) return; + super.translate(_dx, _dy); + for (Unit unit : units) + unit.translate(_dx, _dy); + transform.idt(); + transform.translate((rect.x + dx), (rect.y + rect.height), 0).scale(SCALE, SCALE, 0).translate(-rect.x, - (rect.y + rect.height), 0); + point.set(rect.x, rect.y, 0).mul(transform); + scaledRect.x = point.x; + scaledRect.y = point.y; + point.set((rect.x + rect.width), (rect.y + rect.height), 0).mul(transform); + scaledRect.width = point.x - scaledRect.x; + scaledRect.height = point.y - scaledRect.y; + } + public void setPosition(Position position, float y) { this.position = position; |