diff --git a/frontend/core/src/com/game/tankwars/view/GameHud.java b/frontend/core/src/com/game/tankwars/view/GameHud.java new file mode 100644 index 0000000000000000000000000000000000000000..deffa818a2f1eff718c9fafa86572f0caf1f2768 --- /dev/null +++ b/frontend/core/src/com/game/tankwars/view/GameHud.java @@ -0,0 +1,106 @@ +package com.game.tankwars.view; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.Button; +import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.ProgressBar; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Slider; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.utils.viewport.Viewport; +import com.ray3k.stripe.FreeTypeSkin; + +public class GameHud { + + private Stage stage; + + private Table table; + + private Skin skin; + + private ProgressBar healthProgressBarPlayer; + private ProgressBar healthProgressBarOpponent; + + + private TextButton fireButton; + + private HorizontalGroup powerContainer; + private Label powerLabel; + private Slider powerSlider; + + private Button moveLeft; + private Button moveRight; + private HorizontalGroup moveContainer; + + public GameHud(Viewport viewport, SpriteBatch batch) { + stage = new Stage(viewport, batch); + + table = new Table(); + table.setFillParent(true); + table.setDebug(true); + + stage.addActor(table); + + skin = new FreeTypeSkin(Gdx.files.internal("gameplay-skin.json")); + + healthProgressBarPlayer = new ProgressBar(0, 100, 1, false, skin); + healthProgressBarPlayer.setValue(40); + healthProgressBarOpponent = new ProgressBar(0, 100, 1, false, skin); + healthProgressBarOpponent.setValue(40); + + table.add(healthProgressBarPlayer).expand().top().left().padTop(10).padLeft(10); + table.add(healthProgressBarOpponent).expand().top().right().padTop(10).padRight(10); + + table.row(); + + fireButton = new TextButton("Fire!", skin); + table.add(fireButton).expand().bottom().left().padLeft(10).padBottom(10); + + powerLabel = new Label("Power", skin.get("roboto-black-white", Label.LabelStyle.class)); + powerSlider = new Slider(0, 100, 1, false, skin); + + powerContainer = new HorizontalGroup().space(10); + powerContainer.addActor(powerLabel); + powerContainer.addActor(powerSlider); + + table.add(powerContainer).expand().bottom().padBottom(10); + + moveLeft = new Button(skin.get("move-left", Button.ButtonStyle.class)); + moveRight = new Button(skin.get("move-right", Button.ButtonStyle.class)); + + moveContainer = new HorizontalGroup().space(10); + moveContainer.addActor(moveLeft); + moveContainer.addActor(moveRight); + + table.add(moveContainer).expand().bottom().right().padBottom(10).padRight(10); + + } + + public Stage getStage() { + return stage; + } + + public Skin getSkin() { + return skin; + } + + public TextButton getFireButton() { + return fireButton; + } + + public Slider getPowerSlider() { + return powerSlider; + } + + public Button getMoveLeft() { + return moveLeft; + } + + public Button getMoveRight() { + return moveRight; + } +}