1
LibGDX.scene2d.uiでゲーム用のGUIを構築していて、入力を処理しようとしているときに問題があります。私は、ボタンが押されたときに何かが起こるようにする、次のコードを持っているが、それは動作しません:LibGDX.scene2dの入力で状態チェックが間違っている
enterButton.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int p, int b) {
Gdx.app.log("touched", "down");
return true;
}
@Override
public void touchUp(InputEvent e, float x, float y, int p, int b) {
Gdx.app.log("touched", "up");
if(x > enterButton.getX() && x < enterButton.getRight() && y > enterButton.getY() && y < enterButton.getTop()) {
Gdx.app.log("cond", "cursor on actor");
if(validate(loginField.getText(), passField.getText())) {
Gdx.app.log("cond", "validated");
openMenu();
}
}
Gdx.app.log("untouched", "up");
}
});
しかし、実質的に同一のコード作業を正しく:
registerButton.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int p, int b) {
return true;
}
@Override
public void touchUp(InputEvent e, float x, float y, int p, int b) {
if(x > registerButton.getX() && x < registerButton.getRight() && y > registerButton.getY() && y < registerButton.getTop()) {
registerWindow.setVisible(true);
baseWindow.setVisible(false);
}
}
});
を私はenterButtonをシングルクリックした後LibGDXロギングでこの出力を得る:
touched: down
touched: up
untouched: up
何が問題なのですか?
ここで問題は何ですか?説明できますか ? –
ChangeListenerを使用して、変更されたメソッドをオーバーライドして、ボタンを押すだけで反応します。 – Tenfour04