Timer 如何在libgdx中对方法排序
我正在使用libgdx,我有几个不同方法的游戏对象,我希望计时器中的方法一个接一个地发生,但在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
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库状态机)。方法本身会一个接一个地运行。您的问题可能是这些方法产生的效果会同时发生。我建议使用一些事件队列来存储即将执行的任务,一旦任务完成,就可以启动队列中的下一个任务。