需要敌人管理员在产生敌人之间等待

时间:2014-10-08 21:07:48

标签: java timed spawning

我为每种类型提供了几种不同的敌人类型和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并在构造函数中调用任务,但这也没有用。不知道为什么。

1 个答案:

答案 0 :(得分:0)

TimerTask和java.util.Timer不起作用,因为它没有设置为在Swing事件线程上运行重复的代码,应该使用Swing GUI来避免。再次使用Swing Timer,因为在Swing事件线程中调用了Timer的ActionListener中调用的所有代码。

另一方面,如果你有一个长时间运行的任务,例如你想进行图像分析或其他需要很长时间才能运行的东西,那么应该在后台线程中调用,例如通过SwingWorker