Ich bin neu in LibGDX. Ein Problem, auf das ich stoße, ist, dass Tasten beim Drücken aufeinander reagieren. Wenn ich zum Beispiel in meinem Code eine dieser Tasten drücke, möchte ich, dass die anderen beiden automatisch ausgezogen werden (nur eine der drei Tasten kann gleichzeitig gedrückt werden). Das Problem, auf das ich stoße, ist, dass es ziemlich viel Verzögerung für die Schalter gibt, um Zustände zu wechseln.LibGDX Quick Button Click Aktion
public MenuStateTest(GameStateManager gsm) {
super(gsm);
cam.setToOrtho(false, MyGame.WIDTH, MyGame.HEIGHT);
fitViewport = new FitViewport(MyGame.WIDTH, MyGame.HEIGHT);
stage = new Stage(fitViewport);
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
skin = new Skin();
buttonAtlas = new TextureAtlas("buttonTest.pack");
skin.addRegions(buttonAtlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("1BBlock");
textButtonStyle.down = skin.getDrawable("T1BBlock");
button = new TextButton("", textButtonStyle);
stage.addActor(button);
button.setPosition(20, 200);
button.getStyle().checked = button.getStyle().down;
button.setChecked(false);
button2Atlas = new TextureAtlas("Button2Test.pack");
skin.addRegions(button2Atlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("2BBlock");
textButtonStyle.down = skin.getDrawable("T2BBlock");
button2 = new TextButton("", textButtonStyle);
stage.addActor(button2);
button2.setPosition(175, 200);
button2.getStyle().checked = button2.getStyle().down;
button2.setChecked(true);
button3Atlas = new TextureAtlas("Button3Test.pack");
skin.addRegions(button3Atlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("3BBlock");
textButtonStyle.down = skin.getDrawable("T3BBlock");
button3 = new TextButton("", textButtonStyle);
stage.addActor(button3);
button3.setPosition(330, 200);
button3.getStyle().checked = button3.getStyle().down;
button3.setChecked(true);
}
@Override
protected void handleInput() {
if(button.isChecked()&& button.isPressed()){
button.setChecked(false);
button2.setChecked(true);
button3.setChecked(true);
}
if(button2.isChecked()&& button2.isPressed()){
button.setChecked(true);
button2.setChecked(false);
button3.setChecked(true);
}
if(button3.isChecked()&& button3.isPressed()){
button.setChecked(true);
button2.setChecked(true);
button3.setChecked(false);
}
}
@Override
protected void update(float dt) {
stage.getViewport().update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
handleInput();
}
Jede Hilfe wäre willkommen.
Danke.
nur dafür sorgen, ... tun Sie verstehen, dass „gedrückt‘ den Finger noch auf den Knopf gedrückt wird? Ein getestetes Zustand schaltet die Taste, wenn es ‚‘ geklickt, was bedeutet, es wurde gedrückt und dann losgelassen mit Derselbe Finger ist immer noch über dem Knopf. Und ist Ihr Ziel, drei Toggle-Buttons zu haben? Es gibt bereits eine ButtonGroup-Klasse für den Umgang mit Radio-Button-Funktionalität. – Tenfour04
Also alles, was ich tun müsste, ist die Schaltflächen oben zu einer ButtonGroup hinzufügen ? – user2965071