我有几种不同的敌人类型和每种类型的enemyManager arrayList类。我将每种类型的敌人随机产卵,稍微离开屏幕,进入屏幕,然后离开另一边,死亡,随机响应。问题是当我使用一个循环来产生物体时,许多物体会在同一个地方产卵,或者在同一时间追上另一个物体并再次产卵。我希望在他们之间有一段时间的延迟,这样他们就更加分散了。需要enemyManager在产卵的敌人之间等待
我在寻找的是一种减缓java中敌人产卵的方法。我尝试通过计时器扩展敌方管理员类并命名spawn函数运行,但这不起作用。
另外我不是多线程,因为我真的不知道如何设置它,并试图完成这个项目而没有实现,但如果这似乎是最好的解决方案,那么我想我将不得不这样做。
感谢您的任何建议。
更新.....
class spawnLgCars extends TimerTask {
public void run() {
if (lgCars.size() < 10) {
lgCars.add(new LgCar());
System.out.println("spawned");
} else if (lgCars.size() > 10) {
lgCars.get(0);
}
}
}
我在这里,我想如何实现TimerTask的,而是因为它必须是在它自己的类,它没有进入实例的属性我正在使用的lgCars。然后我尝试通过Timer Task添加扩展lgCars,并在构造函数中调用任务,但这也不起作用。不知道为什么。
'Thread.sleep'? – 2014-10-08 21:15:39
“但这不起作用”告诉我们一点。事实上,我很难找出导致你目前问题的原因。请提供更多背景,细节和相关代码。你使用的是什么GUI库?如果摇摆,然后使用摇摆计时器来延迟。如果没有,那么可能是一个java.util.Timer或调度执行器服务。是的,现在您可能需要阅读线程了。 – 2014-10-08 21:33:31
我尝试了Thread.sleep,但它没有奏效,它暂停了我的整个程序,而不仅仅是敌方经理的产卵。我正在使用swing和awt。我添加的大部分内容都是在各种教程中找到的。这是我第一次在java中构建一个gui。我正在使用摆动计时器重新绘制所有内容。我不确定我是否可以使用另一个来产生敌人?我会发布我如何试图实现下面的TimerTask,并解释它做了什么以及为什么它不起作用。谢谢你们。 – 2014-10-08 22:04:36