java—如何让某些东西在一定时间内执行

yr9zkbsy  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(342)

这是我正在制作的一个太空入侵者游戏。这段代码处理与项目和射手的碰撞。在游戏开始时,射手最多可以射击3次,当他收集一件物品时,最多可以射击10次,持续3秒。我曾尝试使用for循环,但它从未恢复到最大大小3
无for循环

//items vs shooter
var removeItems = new ArrayList<>();
for(var blocks: shooter.getComponents()){
    for(var i: items){
        if(blocks.collideWith(i)){
            removeItems.add(i);
            shooter.setMAX_BULLETS(10);
        }
    }
}
items.removeAll(removeItems);

带for循环

var removeItems = new ArrayList<>();
for(var blocks: shooter.getComponents()){
    for(var i: items){
        if(blocks.collideWith(i)){
            removeItems.add(i);
            for(int j =0; j<3;j++){
                shooter.setMAX_BULLETS(10);
            }
        }
    }
}
items.removeAll(removeItems);
k0pti3hp

k0pti3hp1#

任何地方都不能将最大子弹数设置回3。添加 shooter.setMAX_BULLETS(3) 在for循环之后。

for(int j =0; j<3;j++){
    shooter.setMAX_BULLETS(10);
}
shooter.setMAX_BULLETS(3);
kfgdxczn

kfgdxczn2#

我得到了问题的答案

Thread shootThread = new Thread() {
                        @Override
                        public void run() {
                            shooter.setMAX_BULLETS(10);
                            try {
                                Thread.sleep(3000);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            shooter.setMAX_BULLETS(3);
                        }
                    };
                    shootThread.start();

相关问题