scenes.GameWaiting.java Source code

Java tutorial

Introduction

Here is the source code for scenes.GameWaiting.java

Source

/*
 * 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 scenes;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.circle.game.Config;
import networking.GameClient;

/**
 *
 * @author <a href="mailto:kevin.vanderburg@student.fontys.nl">Kevin van der Burg</a>
 */
public class GameWaiting extends ApplicationAdapter {
    private Stage stage; //done
    private TextureAtlas atlas; //done
    private Skin skin; //done
    private Table table; // Align all buttons
    private TextButton cancelButton;
    private BitmapFont font60;
    private BitmapFont font25;
    private BitmapFont font30;
    private BitmapFont font30Fade;
    private GlyphLayout layout;
    private SpriteBatch batch;
    private FontFade fade;

    private String map;
    private String gameMode;
    private int numberOfPlayers;
    String dots = "";

    public GameWaiting(String map, String gameMode, int numberOfPlayers) {
        this.map = map;
        this.gameMode = gameMode;
        this.numberOfPlayers = numberOfPlayers;

        create();
    }

    @Override
    public void create() {
        layout = new GlyphLayout();
        batch = new SpriteBatch();

        //initialize fonts
        FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/MunroSmall.ttf"));
        FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
        parameter.size = 60;
        font60 = generator.generateFont(parameter); // font size 12 pixels
        font60.setColor(Color.BLACK);
        parameter.size = 40;
        font30 = generator.generateFont(parameter); // font size 12 pixels
        font30.setColor(0.38f, 0.38f, 0.38f, 1f);
        font30Fade = generator.generateFont(parameter); // font size 12 pixels
        font30Fade.setColor(0.38f, 0.38f, 0.38f, 1f);
        parameter.size = 25;
        font25 = generator.generateFont(parameter); // font size 12 pixels
        font25.setColor(Color.BLACK);
        generator.dispose(); // don't forget to dispose to avoid memory leaks!

        fade = new FontFade(font30Fade);

        //prepare buttons
        stage = new Stage();

        Gdx.input.setInputProcessor(stage);
        atlas = new TextureAtlas("ui/buttonPack.pack");
        skin = new Skin(atlas);
        table = new Table(skin);
        table.setBounds(0, -150, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

        final TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle();
        textButtonStyle.downFontColor = new Color(0f, 0.57f, 0.92f, 1f);
        textButtonStyle.overFontColor = new Color(0f, 0.57f, 1f, 1f);
        textButtonStyle.font = font30;
        textButtonStyle.fontColor = Color.BLACK;

        cancelButton = new TextButton("Cancel", textButtonStyle);
        cancelButton.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                GameClient.leaveGames();
                Config.page = new GameModeSelect();
            }

        });

        cancelButton.pad(20);

        table.add(cancelButton);
        stage.addActor(table);

        GameClient.joinGame(gameMode, map, numberOfPlayers);
    }

    @Override
    public void render() {
        batch.begin();

        //Write Circle
        layout.setText(font60, "Joining game");
        int x = (int) (Gdx.graphics.getWidth() / 2 - layout.width / 2);
        int y = (int) (Gdx.graphics.getHeight() / 2 + 60);
        font60.draw(batch, "Joining game", x, y);

        //            //Write entered name
        layout.setText(font30, "Looking for an Active: " + gameMode);
        x = (int) (Gdx.graphics.getWidth() / 2 - layout.width / 2);
        y = (int) (Gdx.graphics.getHeight() / 2 - 30);
        font30.draw(batch, "Looking for an Active: " + gameMode, x, y);

        //Write fading text trailer
        layout.setText(font30, "Looking for an Active: " + gameMode);
        x = (int) (x + layout.width);
        y = (int) (Gdx.graphics.getHeight() / 2 - 30);

        font30Fade.draw(batch, " ...", x, y);
        fade.update();

        batch.end();

        stage.act();
        stage.draw();
    }
}