我为每种类型提供了几种不同的敌人类型和enemyManager arrayList类。我有各种类型的敌人在产生点随机产卵,稍微偏离屏幕,进入屏幕,然后离开另一边,死亡,并随机响应。问题是当我使用一个循环来产生对象时,它们中的许多会在同一个地方产生,或者在同一时间内彼此赶上并再次产卵。我想在他们之间有一个延迟,所以他们更加分散。
我正在寻找的是一种减缓java中敌人循环产卵的方法。我尝试通过计时器扩展敌人管理器类并命名生成函数运行,但这不起作用。
此外,我不是多线程,因为我真的不知道如何设置它并试图完成这个项目而没有实现它,但如果这似乎是最好的解决方案,那么我想我将不得不。
感谢您的任何建议。
更新.....
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并在构造函数中调用任务,但这也没有用。不知道为什么。
答案 0 :(得分:0)
TimerTask和java.util.Timer不起作用,因为它没有设置为在Swing事件线程上运行重复的代码,应该使用Swing GUI来避免。再次使用Swing Timer,因为在Swing事件线程中调用了Timer的ActionListener中调用的所有代码。
另一方面,如果你有一个长时间运行的任务,例如你想进行图像分析或其他需要很长时间才能运行的东西,那么应该在后台线程中调用,例如通过SwingWorker