summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-11-09 00:38:04 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2014-11-09 00:38:04 +0100
commitc81eabd7eb21ff656c98a814ee729c61896173d4 (patch)
tree684956d271925878316504dc3151fb319e5189e4 /core
parent373d2bc17718cd7279a52fe80ea3d412d107f697 (diff)
downloadRustAndDust-c81eabd7eb21ff656c98a814ee729c61896173d4.zip
RustAndDust-c81eabd7eb21ff656c98a814ee729c61896173d4.tar.gz
Button: extends Widget, works with TextureRegion not Image
Diffstat (limited to 'core')
-rw-r--r--core/src/ch/asynk/tankontank/game/hud/Button.java61
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);
}
}