diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2018-10-09 11:48:12 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2018-10-09 11:48:12 +0200 |
commit | a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252 (patch) | |
tree | 1f0fc393d2515b7296bef3bf9499e1c62bf6d342 | |
parent | 30b53f449678212b799d198672d570644b32b7c0 (diff) | |
download | gdx-boardgame-a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252.zip gdx-boardgame-a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252.tar.gz |
add pieces/Piece and Overlays
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/pieces/Overlays.java | 108 | ||||
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/pieces/Piece.java | 22 |
2 files changed, 130 insertions, 0 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/pieces/Overlays.java b/core/src/ch/asynk/gdx/boardgame/pieces/Overlays.java new file mode 100644 index 0000000..4907dde --- /dev/null +++ b/core/src/ch/asynk/gdx/boardgame/pieces/Overlays.java @@ -0,0 +1,108 @@ +package ch.asynk.gdx.boardgame.pieces; + +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; +import com.badlogic.gdx.utils.Array; + +import ch.asynk.gdx.boardgame.Drawable; +import ch.asynk.gdx.boardgame.Positionable; +import ch.asynk.gdx.boardgame.Rotable; +import ch.asynk.gdx.boardgame.Scalable; + +public class Overlays implements Drawable, Positionable, Rotable, Scalable +{ + private boolean enabled[]; + private Array<Sprite> sprites; + + public Overlays(TextureAtlas atlas) + { + this.sprites = atlas.createSprites(); + this.enabled = new boolean[sprites.size]; + } + + public void disableAll() + { + for (int i = 0; i < sprites.size; i++) + enabled[i] = false; + } + + public void enable(int i, boolean enable) + { + enabled[i] = enable; + } + + public boolean isEnabled(int i) + { + return enabled[i]; + } + + public boolean isEnabled() + { + for (int i = 0; i < sprites.size; i++) { + if (enabled[i]) { + return true; + } + } + return false; + } + + @Override public float getX() { return sprites.get(0).getX(); } + @Override public float getY() { return sprites.get(0).getY(); } + @Override public float getWidth() { return sprites.get(0).getWidth(); } + @Override public float getHeight() { return sprites.get(0).getHeight(); } + + @Override public void translate(float dx, float dy) + { + for (Sprite sprite : sprites) { + sprite.translate(dx, dy); + } + } + + @Override public void centerOn(float cx, float cy) + { + for (Sprite sprite : sprites) { + sprite.setPosition( + (cx - (sprite.getWidth() / 2f)), + (cy - (sprite.getHeight() / 2f))); + } + } + + @Override public void setPosition(float x, float y) + { + for (Sprite sprite : sprites) { + sprite.setPosition(x, y); + } + } + + @Override public void setRotation(float rotation) + { + for (Sprite sprite : sprites) { + sprite.setRotation(rotation); + } + } + + @Override public void setScale(float scale) + { + for (Sprite sprite : sprites) { + sprite.setScale(scale); + } + } + + @Override public void setAlpha(float alpha) + { + for (Sprite sprite : sprites) { + sprite.setAlpha(alpha); + } + } + + @Override public void draw(Batch batch) + { + for (int i = 0, n = sprites.size; i < n; i++) { + if (enabled[i]) { + sprites.get(i).draw(batch); + } + } + } +} diff --git a/core/src/ch/asynk/gdx/boardgame/pieces/Piece.java b/core/src/ch/asynk/gdx/boardgame/pieces/Piece.java new file mode 100644 index 0000000..3c99ca4 --- /dev/null +++ b/core/src/ch/asynk/gdx/boardgame/pieces/Piece.java @@ -0,0 +1,22 @@ +package ch.asynk.gdx.boardgame.pieces; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.Sprite; + +import ch.asynk.gdx.boardgame.Drawable; +import ch.asynk.gdx.boardgame.Positionable; +import ch.asynk.gdx.boardgame.Rotable; +import ch.asynk.gdx.boardgame.Scalable; + +public class Piece extends Sprite implements Drawable, Positionable, Rotable, Scalable +{ + public Piece(Texture texture) + { + super(texture); + } + + @Override public void centerOn(float cx, float cy) + { + setPosition((cx - (getWidth() / 2f)), (cy - (getHeight() / 2f))); + } +} |