В настоящее время я делаю игру libGDX для Android-устройств. Я хочу иметь метод, который вызывает функцию при вызове touchDown, но не при нажатии кнопки. Это связано с тем, что я устанавливаю цель для башни, и она не должна вращаться при нажатии кнопки.Игра LibGDX: проверьте, не нажата ли кнопка, когда touchDown называется
код у меня есть на данный момент
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if (state != STATE.GAMEOVERLOST && state != STATE.PAUSED
&& state != STATE.EXITMENU && !slowButton.isOver()
&& !pauseButton.isPressed())
turret.setTargetAngle(screenX, screenY);
return true;
}
Это отменяет функцию в классе InputProcessor мой класс реализует.
Этот код работает:
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
if (state != STATE.GAMEOVERLOST && state != STATE.PAUSED
&& state != STATE.EXITMENU && !slowButton.isPressed()
&& !pauseButton.isPressed())
turret.setTargetAngle(screenX, screenY);
return true;
}
Тот факт, что touchDragged работает, но приземление не указывает на то, что кнопка не получает помечено как «не нажата» до окончания первой инстанции.
Я также попытался использовать Button.isOver() вместо Button.isPressed(), но это все еще не работает должным образом.
У кого-нибудь есть советы?
Я только что проверил, что stage.hit (screenX, screenY, true) == null, который работал, потому что кнопки были единственными действующими лицами на сцене. Спасибо, что указал мне в правильном направлении! – Highfield