Timer 如何在libgdx中对方法排序

Timer 如何在libgdx中对方法排序,timer,libgdx,sequencing,Timer,Libgdx,Sequencing,我正在使用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.r

我正在使用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();


    }

它的工作原理是,每次调用一个数字时,都会运行一组方法,但它们同时运行。我希望它们一个接一个地运行。它有一些用于构建和响应事件的实用程序。对于你想要的东西来说,这可能是过分的,但可能有一些想法你可以借鉴

另见

较轻的方法可能是这样的:(尽管我建议这样做主要是为了理解更复杂的AI库状态机)。

方法本身会一个接一个地运行。您的问题可能是这些方法产生的效果会同时发生。我建议使用一些事件队列来存储即将执行的任务,一旦任务完成,就可以启动队列中的下一个任务。