Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package dk.sdu.core.scenes; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; import dk.sdu.core.main.Game; /** * * @author fatihozcelik */ public class HUD implements Disposable { public Stage stage; private final Viewport viewport; private Integer worldTimer; private float timeCount; private static Integer score; private boolean timeUp; private int playerHealth; Label countdownLabel; static Label scoreLabel; Label timeLabel; Label levelLabel; Label worldLabel; Label playerLabel; Label healthLabel; Label healthCountLabel; public HUD(SpriteBatch sb) { worldTimer = 300; timeCount = 0; score = 0; viewport = new FitViewport(Game.V_WIDTH, Game.V_HEIGHT, new OrthographicCamera()); stage = new Stage(viewport, sb); Table table = new Table(); table.top(); table.setFillParent(true); countdownLabel = new Label(String.format("%03d", worldTimer), new Label.LabelStyle(new BitmapFont(), Color.WHITE)); scoreLabel = new Label(String.format("%06d", score), new Label.LabelStyle(new BitmapFont(), Color.WHITE)); timeLabel = new Label("TIME", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); levelLabel = new Label("1", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); worldLabel = new Label("LEVEL", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); playerLabel = new Label("SCORE", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); healthLabel = new Label("HEALTH", new Label.LabelStyle(new BitmapFont(), Color.WHITE)); healthCountLabel = new Label(String.format("%03d", playerHealth), new Label.LabelStyle(new BitmapFont(), Color.WHITE)); table.add(playerLabel).expandX().padTop(10); table.add(healthLabel).expandX().padTop(10); table.add(worldLabel).expandX().padTop(10); table.add(timeLabel).expandX().padTop(10); table.row(); table.add(scoreLabel).expandX(); table.add(healthCountLabel).expandX(); table.add(levelLabel).expandX(); table.add(countdownLabel).expandX(); stage.addActor(table); } public Integer getWorldTimer() { return worldTimer; } public void update(float dt) { timeCount += dt; if (timeCount >= 1) { worldTimer--; countdownLabel.setText(String.format("%03d", worldTimer)); timeCount = 0; } } public void addScore(int value) { score += value; scoreLabel.setText(String.format("%06d", score)); } public void setHealth(int health) { playerHealth = health; healthCountLabel.setText(String.format("%03d", playerHealth)); } @Override public void dispose() { stage.dispose(); } public boolean isTimeUp() { return timeUp; } }