У меня есть игра-стрелялка, которая работает с какими-то раундами, например, этот раунд покажет 4 врагов на экране, которых должен стрелять пользователь. Я показываю 4 врагов с интервалом в полсекунды, чтобы они не появлялись одновременно. Используя что-то вроде:
enemiesShowTimer = new Timer(0.5 * 1000, 1);
enemiesShowTimer.addEventListener(TimerEvent.TIMER, showEnemyAtTime);
enemiesShowTimer.start();
У игрока есть 2 секунды, чтобы убить каждого врага после его появления, поэтому я также использую это:
enemiesCleanTimer = new Timer(roundConfig.getSecondsPerEnemy() * 1000, 1);
enemiesCleanTimer.addEventListener(TimerEvent.TIMER, cleanEnemies);
enemiesCleanTimer.start();
Проблема в том, что после того, как игрок умирает, я меняю сцену, и если у меня осталось 3 живых врага, потоки попытаются запустить методы, и он рухнет. Я всегда использую одну и ту же переменную для запуска таймера, когда мне это нужно. Как я могу решить это? Должен ли я хранить каждую «ветку» (таймер) в списке, а затем останавливать каждую по отдельности? Потому что так оно и есть, остальные потоки находятся в каком-то «подвешенном состоянии», и я не могу остановиться, только последний.
Любая помощь?
Спасибо!