#java #android #libgdx
#java #Android #libgdx
Вопрос:
Прежде всего, я пытаюсь создать головоломку с той же концепцией, что и эта игра,
ССЫЛКА: http://www.youtube.com/watch?v=-b2LunJPXC0 (название игры — Siren Fantasia)
Где в пользователь будет удерживать один элемент с игрового поля, а окружающие его объекты будут вращаться по часовой стрелке, пока пользователь не отпустит его.
Я хочу имитировать, что, когда пользователь удерживает кнопку, действие будет непрерывно выполняться до тех пор, пока пользователь не отпустит его.
Вот пример кода, который я уже создал:
float delay = 2f;
button.addListener(new ClickListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
if(pointer == 0) {
Timer.schedule(new Task(){
@Override
public void run() {
int counter = 0;
do{
Timer.schedule(new Task() {
@Override
public void run() {
button2.setVisible(false);
}
}, delay);
Timer.schedule(new Task() {
@Override
public void run() {
button2.setVisible(true);
}
}, delay);
}while( counter >= 1 );
}
}, buttonDelay);
}
return false;
}
});
И результат не тот, который я хотел, чтобы это было. Когда я удерживаю кнопку, для button2 не устанавливаются значения visible (ложь) и visible (истина). Но когда я продолжал удерживать ее снова и снова, иногда это срабатывало.
Мне действительно нужна помощь. Спасибо.
Комментарии:
1. Когда
counter
увеличивается? У вас есть,while counter >=1
но вы инициируете его с помощьюcounter=0
, и оно вообще не увеличивается. Кроме того, у меня есть идея, вместо того чтобы выполнять 2 задачи, почему бы вам не проверить внутри задачи, видна ли кнопка, затем сделать ее невидимой, и наоборот.2. Ах да, я немного забыл об этом, спасибо! Теперь я меняю цикл на a while (true), чтобы он был бесконечным. Есть ли способ использовать бесконечный цикл без замораживания программы?