0

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


    }

它的工作原理是每次调用一个数字时都会运行一组方法,但它们会同时运行,我希望它们一个接一个地运行

4

1 回答 1

0

您可能会查看 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(尽管我建议这样做主要是一种方式了解更复杂的 AI 库状态机)。

于 2015-10-04T15:35:23.257 回答