Home
About
Contact Us
Privacy Policy
Apps
Games
Services
Home
Features
Multi DropDown
DropDown 1
DropDown 2
Documentation
Home
Features
Multi DropDown
DropDown 1
DropDown 2
Documentation
Home
Technology
How to make Menus Screen for your android game tutorial 5
How to make Menus Screen for your android game tutorial 5
July 17, 2020
MENU SCREEN BASE CLASS
package menu;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.ScreenAdapter;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.ninal.game.ObstacleGame;
import config.GameConfig;
public abstract class MenuScreenBase extends ScreenAdapter {
protected final ObstacleGame game;
protected final AssetManager assetManager;
private Viewport viewport;
private Stage stage;
public MenuScreenBase(ObstacleGame game) {
this.game = game;
assetManager = game.getAssetManager();
}
@Override
public void show() {
viewport = new FitViewport(GameConfig.HUD_WIDTH,GameConfig.HUD_HEIGHT);
stage = new Stage(viewport,game.getBatch());
Gdx.input.setInputProcessor(stage);
stage.addActor(createUI());
}
protected abstract Actor createUI();
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0,0,0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act();
stage.draw();
}
@Override
public void resize(int width, int height) {
viewport.update(width, height,true);
}
@Override
public void hide() {
}
@Override
public void dispose() {
stage.dispose();
}
}
MENU SCREEN CLASS
package menu;
import game.GameScreen;
import asset.AssetDescriptors;
import asset.RegionNames;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
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.ChangeListener;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.badlogic.gdx.utils.Logger;
import com.ninal.game.ObstacleGame;
public class MenuScreen extends MenuScreenBase {
private static final Logger log = new Logger(MenuScreen.class.getName(),Logger.DEBUG);
public MenuScreen(ObstacleGame game) {
super(game);
}
@Override
protected Actor createUI() {
Table table = new Table();
TextureAtlas gamePlayAtlas = assetManager.get(AssetDescriptors.ATLAS_FILE);
Skin uiskin = assetManager.get(AssetDescriptors.UI_JSONSKIN);
TextureRegion backgroundRegion = gamePlayAtlas.findRegion(RegionNames.BACKGROUND);
table.setBackground(new TextureRegionDrawable(backgroundRegion));
//play button
TextButton playButton = new TextButton("PLAY",uiskin);
playButton.addListener(new ChangeListener(){
@Override
public void changed(ChangeEvent event, Actor actor) {
play(); }});
//high score button
TextButton highscoreButton = new TextButton("HIGHSCORE",uiskin);
highscoreButton.addListener(new ChangeListener(){
@Override
public void changed(ChangeEvent event, Actor actor) {
showHighScore(); }});
//options button
TextButton optionsButton = new TextButton("OPTIONS",uiskin);
optionsButton.addListener(new ChangeListener(){
@Override
public void changed(ChangeEvent event, Actor actor) {
showOptions();}});
TextButton quitButton = new TextButton("QUIT",uiskin);
quitButton.addListener(new ChangeListener(){
@Override
public void changed(ChangeEvent event, Actor actor) {
quit(); }});
//setUp Table
Table buttonTable = new Table(uiskin);
buttonTable.defaults().pad(10);
buttonTable.setBackground(RegionNames.BOX);
buttonTable.add(playButton).row();
buttonTable.add(highscoreButton).row();
buttonTable.add(optionsButton).row();
buttonTable.add(quitButton);
buttonTable.center();
table.add(buttonTable);
table.center();
table.setFillParent(true);
table.pack();
// stage.addActor(table);
return table;
}
private void quit() {
log.debug("Quit");
Gdx.app.exit();
}
private void showOptions() {
log.debug("showOptions");
game.setScreen(new OptionsScreen(game));
}
private void play() {
game.setScreen(new GameScreen(game));
log.debug("Play");
}
private void showHighScore() {
game.setScreen(new HighScoreScreen(game));
log.debug("showHighScore");
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
Post a Comment
0 Comments
Search This Blog
Subscribe Us
Tags
About
1
Apps
5
Business
28
E-commerce
3
Games
23
IFTTT
5
software
108
Technology
237
YouTube
44
linkvertise
Total Pageviews
154,897
0 Comments