public class GameScreen implements Screen {
public void show()
{
buttonsAtlas = new TextureAtlas("Color.pack"); //button atlas image
buttonSkin = new Skin();
buttonSkin.addRegions(buttonsAtlas);
font = new BitmapFont(Gdx.files.internal("CustomFont.fnt"), false); //the font
stage = new Stage(); // window is stage
stage.clear();
TextButton.TextButtonStyle style = new TextButton.TextButtonStyle(); // button properties
style.up = buttonSkin.getDrawable("Red");
style.down = buttonSkin.getDrawable("Blue");
style.font = font;
gameButton = new TextButton("Game Screen", style); //button text and style
gameButton.setPosition(-250, 500); //button location
gameButton.setHeight(600); //button height
gameButton.setWidth(1200); //button width
shopButton = new TextButton("Shop Menuuuu", style); //button text and style
shopButton.setPosition(100, 500); //button location
shopButton.setHeight(600); //button height
shopButton.setWidth(1200); //button width
stage.addActor(shopButton);
stage.addActor(gameButton);
Gdx.input.setInputProcessor(stage);
gameButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
gameButton.setBounds(-250, 500, 100, 100);
Gdx.app.log("my app,", "pressed");
game.setScreen(new inGame(game));
return true;
}
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
Gdx.app.log("my app", "released");
}
});
shopButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
shopButton.setBounds(100, 500, 100, 100);
Gdx.app.log("my app,", "pressed");
game.setScreen(new Shop(game));
return true;
}
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
Gdx.app.log("my app", "released");
}
});
}
public void render(float x)
{
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act();
game.batch.begin();
stage.draw();
game.batch.end();
}
public void dispose()
{
batch.dispose();
buttonSkin.dispose();
buttonsAtlas.dispose();
stage.dispose();
}
TextButton
を同時に動作させようとしています。ただし、画面には常に1つのボタンが表示されます。これはステージに追加された最後のボタンです。この場合は、ステージに追加された最後のボタンなので、gameButton
です。LibGDXで2つの異なるテキストボタンが反応しない
どのようにボタンの操作を行うのですか?座標負の設定にはポイントがありません
良いアイデアではありませんが、私はこの問題は、あなたのボタンのサイズであると仮定します。なぜボタンの幅と高さが大きいのですか? – Enigo