[英]How to make something execute for a certain amount of time
这是我正在制作的太空侵略者游戏。 这段代码处理与物品和射手的碰撞。 在游戏开始时,射手最多可以射击 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);
您没有在任何地方将最大子弹数设置回 3。 在 for 循环之后添加shooter.setMAX_BULLETS(3)
。
for(int j =0; j<3;j++){
shooter.setMAX_BULLETS(10);
}
shooter.setMAX_BULLETS(3);
我得到了我的问题的答案
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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.