From a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Tue, 9 Oct 2018 11:48:12 +0200 Subject: add pieces/Piece and Overlays --- .../ch/asynk/gdx/boardgame/pieces/Overlays.java | 108 +++++++++++++++++++++ core/src/ch/asynk/gdx/boardgame/pieces/Piece.java | 22 +++++ 2 files changed, 130 insertions(+) create mode 100644 core/src/ch/asynk/gdx/boardgame/pieces/Overlays.java create mode 100644 core/src/ch/asynk/gdx/boardgame/pieces/Piece.java 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 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))); + } +} -- cgit v1.1-2-g2b99