diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-11-09 00:38:04 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-11-09 00:38:04 +0100 |
commit | c81eabd7eb21ff656c98a814ee729c61896173d4 (patch) | |
tree | 684956d271925878316504dc3151fb319e5189e4 | |
parent | 373d2bc17718cd7279a52fe80ea3d412d107f697 (diff) | |
download | RustAndDust-c81eabd7eb21ff656c98a814ee729c61896173d4.zip RustAndDust-c81eabd7eb21ff656c98a814ee729c61896173d4.tar.gz |
Button: extends Widget, works with TextureRegion not Image
-rw-r--r-- | core/src/ch/asynk/tankontank/game/hud/Button.java | 61 |
1 files changed, 16 insertions, 45 deletions
diff --git a/core/src/ch/asynk/tankontank/game/hud/Button.java b/core/src/ch/asynk/tankontank/game/hud/Button.java index 08e2f1c..9156d50 100644 --- a/core/src/ch/asynk/tankontank/game/hud/Button.java +++ b/core/src/ch/asynk/tankontank/game/hud/Button.java @@ -1,24 +1,14 @@ package ch.asynk.tankontank.game.hud; -import com.badlogic.gdx.Gdx; - -import com.badlogic.gdx.utils.Disposable; - import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.TextureAtlas; -import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.graphics.g2d.TextureRegion; -import ch.asynk.tankontank.engine.gfx.Image; - -public class Button implements Disposable +public class Button extends Widget { - - public int idx; - public boolean blocked; - public boolean visible; - private Image images []; - private Image image; - private Rectangle rect; + private int idx; + private TextureRegion regions []; + private TextureRegion region; private static final int UP = 0; private static final int DOWN = 1; @@ -27,21 +17,18 @@ public class Button implements Disposable public Button(TextureAtlas atlas, String base) { this.idx = UP; - this.blocked = false; - this.visible = false; - this.images = new Image[3]; - this.images[UP] = new Image(atlas.findRegion(base + "-up")); - this.images[DOWN] = new Image(atlas.findRegion(base + "-down")); - this.images[ON] = new Image(atlas.findRegion(base + "-on")); - - this.rect = new Rectangle(getX(), getY(), getWidth(), getHeight()); + this.regions = new TextureRegion[3]; + this.regions[UP] = atlas.findRegion(base + "-up"); + this.regions[DOWN] = atlas.findRegion(base + "-down"); + this.regions[ON] = atlas.findRegion(base + "-on"); + // assumes they all have the same dimension + rect.width = regions[idx].getRegionWidth(); + rect.height = regions[idx].getRegionHeight(); } @Override public void dispose() { - for (Image image : images) - image.dispose(); } public void hide() @@ -80,32 +67,16 @@ public class Button implements Disposable return (idx == ON); } - public Image getImage() - { - return images[idx]; - } - - public void setPosition(float x, float y) - { - for (Image image : images) - image.setPosition(x, y); - rect.set(x, y, getWidth(), getHeight()); - } - public boolean hit(float x, float y) { - if (blocked || !visible || (idx == ON)) return false; - return rect.contains(x,y); + if (idx == ON) return false; + return super.hit(x,y); } - public float getX() { return images[0].getX(); } - public float getY() { return images[0].getY(); } - public float getWidth() { return images[0].getWidth(); } - public float getHeight() { return images[0].getHeight(); } - + @Override public void draw(Batch batch) { if (!visible) return; - getImage().draw(batch); + batch.draw(regions[idx], rect.x, rect.y, rect.width, rect.height); } } |