2015-10-03 6 views
0

Я использую 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(); 


    } 

, как это работает в том, что каждый раз, когда число называется набор методов запуска, но они работают все сразу я хочу, чтобы они бежать один за другим

+2

Метод сам * делает * запускается один за другим. Вероятно, ваша проблема заключается в том, что * эффекты * методы создают все сразу. Я предлагаю использовать некоторую очередь событий для хранения предстоящих задач для выполнения, как только задача будет завершена, следующий из очереди может начаться. – kajacx

ответ

0

Вы можете посмотреть на libgdx-ай расширение , У него есть некоторые утилиты для создания и реагирования на события. state machine, вероятно, слишком велико для того, что вы хотите, но может иметь идеи, которые вы можете использовать.

Смотрите также 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 (хотя я рекомендую делать это в основном как способ понять более сложный AI библиотека состояния машины).