Как мне упорядочить методы в libgdx
Я использую libgdx, и у меня есть несколько игровых объектов с разными методами, я хочу, чтобы методы в моем таймере происходили один за другим, но в libgdx они происходят одновременно, я не знаю, как это исправить
timer.scheduleTask( task = new Task(){ public void run(){
rando =rn.nextInt(8);
Gdx.app.log("the num is", Integer.toString(rando));
if(rando == 0){
bush.rustle();
bush2.rustle2();
bush3.dontrustle3();
bush4.dontrustle4();
enemy.shoot();
enemy2.shoot();
enemy3.godown();
enemy4.godown();
}
if(rando == 1){
bush.dontrustle();
bush2.rustle2();
bush3.rustle3();
bush4.dontrustle4();
enemy.godown();
enemy2.shoot();
enemy3.shoot();
enemy4.godown();
}
if(rando == 2){
bush.rustle();
bush2.dontrustle2();
bush3.rustle3();
bush4.rustle4();
enemy2.godown();
enemy.shoot();
enemy4.shoot();
enemy3.shoot();
}
if(rando == 3){
bush.rustle();
bush2.rustle2();
bush3.rustle3();
bush4.rustle4();
enemy.shoot();
enemy2.goup();
enemy4.goup();
enemy3.shoot();
}
if(rando == 4){
bush.rustle();
bush2.rustle2();
bush3.rustle3();
bush4.rustle4();
enemy2.godown();
enemy.godown();
enemy4.shoot();
enemy3.shoot();
}
Как это работает, каждый раз, когда число называется набором запущенных методов, но они запускаются сразу, я хочу, чтобы они запускались один за другим
1 ответ
Вы можете посмотреть на расширение libgdx-ai. Он имеет несколько утилит для создания и реагирования на события. Конечный автомат, вероятно, излишним для того, что вы хотите, но могут быть идеи, которые вы можете использовать.
Смотрите также https://gamedev.stackexchange.com/questions/14568/integrating-an-ai-state-machine-with-actions-that-take-more-than-1-tick
Облегченный подход может выглядеть примерно так: http://vanillajava.blogspot.com/2011/06/java-secret-using-enum-as-state-machine.html (хотя я рекомендую делать это в основном как способ чтобы понять более сложный ИИ библиотеки конечного автомата).