diff options
Diffstat (limited to 'core/src/ch/asynk/zproject/GameHud.java')
-rw-r--r-- | core/src/ch/asynk/zproject/GameHud.java | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/core/src/ch/asynk/zproject/GameHud.java b/core/src/ch/asynk/zproject/GameHud.java deleted file mode 100644 index 62a1046..0000000 --- a/core/src/ch/asynk/zproject/GameHud.java +++ /dev/null @@ -1,155 +0,0 @@ -package ch.asynk.gdx.board; - -import java.util.function.Supplier; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.Sprite; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; -import com.badlogic.gdx.utils.Disposable; - -import ch.asynk.gdx.board.engine.ui.Button; -import ch.asynk.gdx.board.engine.ui.Alignment; -import ch.asynk.gdx.board.engine.ui.Root; -import ch.asynk.gdx.board.engine.Touchable; - -public class GameHud implements Disposable, Touchable -{ - private final Sprite corner; - private final Root root; - private final Button hello; - private final Button next; - private GameScreen.State state; - private final Supplier<GameScreen.State> nextState; - - public GameHud(final Assets assets, GameScreen.State state, Supplier<GameScreen.State> nextState) - { - this.state = state; - this.nextState = nextState; - this.corner = new Sprite(assets.getTexture(assets.CORNER)); - - this.root = new Root(2); - this.root.setPadding(30); - - this.hello = new Button(assets.getFont(assets.FONT_25), assets.getNinePatch(assets.PATCH, 23, 23, 23 ,23), 10, 15); - this.hello.write("Hello"); - this.root.add(this.hello); - - this.next = new Button(assets.getFont(assets.FONT_25), assets.getNinePatch(assets.PATCH, 23, 23, 23 ,23), 20, 0); - this.next.write("NEXT"); - this.next.setPosition(50, 50); - this.next.setAlignment(Alignment.MIDDLE_CENTER); - this.next.setLabelAlignment(Alignment.MIDDLE_CENTER); - this.root.add(this.next); - } - - @Override public void dispose() - { - corner.getTexture().dispose(); - } - - @Override public boolean touch(float x, float y) - { - if (root.touch(x, y)) { - GdxBoardTest.debug("GameHud", String.format("touchDown : %f %f", x, y)); - if (root.touched() == this.next) - onNext(); - return true; - } - return false; - } - - public void resize(float width, float height) - { - this.root.resize(width, height); - } - - public void onNext() - { - this.state = nextState.get(); - switch (this.state) { - case UI: - updateNext(50, Alignment.MIDDLE_CENTER); - this.root.add(this.hello); - break; - case HEX_V: - updateNext(0, Alignment.BOTTOM_RIGHT); - this.root.remove(this.hello); - break; - case HEX_H: - break; - } - } - - private void updateNext(int p, Alignment a) - { - this.next.setPosition(p, p); - this.next.setAlignment(a); - this.next.update(); - } - - public void draw(Batch batch) - { - switch (this.state) { - case UI: - drawButtons(batch); - drawCorners(batch); - break; - case HEX_V: - case HEX_H: - drawRoot(batch); - break; - } - } - - private void drawRoot(Batch batch) - { - root.draw(batch); - } - - private void drawCorners(Batch batch) - { - float right = root.getX() + root.getWidth() - corner.getWidth(); - float top = root.getY() + root.getHeight() - corner.getHeight(); - corner.setRotation(0); - corner.setPosition(root.getX(), top); - corner.draw(batch); - corner.setRotation(90); - corner.setPosition(root.getX(), root.getY()); - corner.draw(batch); - corner.setRotation(180); - corner.setPosition(right, root.getY()); - corner.draw(batch); - corner.setPosition(right, top); - corner.setRotation(270); - corner.draw(batch); - } - - private void drawButtons(Batch batch) - { - hello.setAlignment(Alignment.TOP_LEFT); - hello.setLabelAlignment(Alignment.BOTTOM_RIGHT); - hello.update(); - root.draw(batch); - drawHello(batch, Alignment.TOP_CENTER, Alignment.BOTTOM_CENTER); - drawHello(batch, Alignment.TOP_RIGHT, Alignment.BOTTOM_LEFT); - drawHello(batch, Alignment.MIDDLE_LEFT, Alignment.MIDDLE_RIGHT); - // drawHello(batch, Alignment.MIDDLE_CENTER, Alignment.MIDDLE_CENTER); - drawHello(batch, Alignment.MIDDLE_RIGHT, Alignment.MIDDLE_LEFT); - drawHello(batch, Alignment.BOTTOM_LEFT, Alignment.TOP_RIGHT); - drawHello(batch, Alignment.BOTTOM_CENTER, Alignment.TOP_CENTER); - drawHello(batch, Alignment.BOTTOM_RIGHT, Alignment.TOP_LEFT); - } - - private void drawHello(Batch batch, Alignment alignment1, Alignment alignment2) - { - hello.setAlignment(alignment1); - hello.setLabelAlignment(alignment2); - hello.update(); - hello.draw(batch); - } - - public void drawDebug(ShapeRenderer debugShapes) - { - root.drawDebug(debugShapes); - } -} |