Biswatma
Biswatma

Reputation: 105

Need help for adding button in menu screen using LIBGDX

I am having 3 different screens which contains splash screen, after menu screen and game screen. Splash > Menu > Gamestarts.

How can i add an image button ??

I want to implement 3 buttons inside Menu screen, Not getting any idea where to start.

public class MenuScreen implements Screen {


private Spacegame game;
private SpriteBatch batch;
private Sprite sprite;
private Texture texture;
TextureRegion bg,play,spacegamelogo,button;
OrthographicCamera camera;
Vector3 touchPoint;
private Skin buttonskin;
public MenuScreen(Spacegame game)
{
    touchPoint = new Vector3();
    this.game=game;
    batch=new SpriteBatch();

    bg=AssetLoader.bg;
    spacedebrislogo=AssetLoader.spacedebrislogo;
    button=AssetLoader.button;
}
    @Override
public void show() {
    float w = Gdx.graphics.getWidth();
    float h = Gdx.graphics.getHeight();
   camera = new OrthographicCamera(1, h / w);

    sprite = new Sprite(bg);
    sprite.flip(false, true);
    sprite.setSize(1.0f,
            1.0f * sprite.getHeight() / sprite.getWidth() );
            sprite.setOrigin(sprite.getWidth() / 2,
            sprite.getHeight() / 2);
            sprite.setPosition(-sprite.getWidth() / 2,
            -sprite.getHeight() / 2);
}
@Override
public void render(float delta) {

    batch.setProjectionMatrix(camera.combined);
    batch.begin();

    sprite.draw(batch);

    batch.draw(spacedebrislogo, 33, 54, 50, 40);
    batch.end();
    if (Gdx.input.isTouched()) {

        game.setScreen(new GameScreen());
        dispose();
    }

}

Upvotes: 0

Views: 1071

Answers (1)

Boldijar Paul
Boldijar Paul

Reputation: 5495

THere are a lot of methods to do it.. I will tell you the way I do. First I create my button image, add it to the assets folder and load the texture region. Now I make a sprite out of it.

Sprite button1=new Sprite(myTextureRegion);

To check if the button is touched I can use the rectangle from the sprite to check if you touched the image. In your touchUp method you will do something like

if(button1.getBoundingRectangle.contains(screenX,screenY))
  // do your thing

To make my game more interesting i like to add some rotation or scaling of my sprite when is clicked, so it looks better, you can play with it, or you can make 2 textures, one for touched down and one for touched up.

Upvotes: 1

Related Questions