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 /core | |
| parent | 30b53f449678212b799d198672d570644b32b7c0 (diff) | |
| download | gdx-boardgame-a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252.zip gdx-boardgame-a07149c93c1c1b5037c49cf6a6b6ec7c3aa02252.tar.gz | |
add pieces/Piece and Overlays
Diffstat (limited to 'core')
| -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))); +    } +} | 
