敌人';被渲染后的幻灭(Java游戏)

敌人';被渲染后的幻灭(Java游戏),java,Java,我在60秒内制造了60个敌人,但是当1个敌人被渲染时,前一个敌人不知何故被移除并替换为下一个敌人。我不明白为什么会发生这种情况,渲染方法在我的游戏循环中每秒都被调用 这是我试图让它发生的敌人阶级,任何帮助都将不胜感激 公共类僵尸群扩展游戏对象{ Rectangle[] zombies = new Rectangle[60]; Timer timer = new Timer(); int spawnedZombies = 0; int zombieX, zombieY; public Zom

我在60秒内制造了60个敌人,但是当1个敌人被渲染时,前一个敌人不知何故被移除并替换为下一个敌人。我不明白为什么会发生这种情况,渲染方法在我的游戏循环中每秒都被调用

这是我试图让它发生的敌人阶级,任何帮助都将不胜感激

公共类僵尸群扩展游戏对象{

Rectangle[] zombies = new Rectangle[60];

Timer timer = new Timer();

int spawnedZombies = 0;
int zombieX, zombieY;

public ZombieSwarm(float x, float y, ID id, SpriteSheet ss) {
    super(x, y, id, ss);

    Delay();
}

public void Delay(){
    timer.schedule(task, 0, 1000);

}

TimerTask task = new TimerTask()
{
    public void run()
    {
        Random rand = new Random();
        int result = rand.nextInt(6);

        if(result == 0){
            zombieX = 1000;
            zombieY = 200;
        }

        if(result == 1){
            zombieX = 100;
            zombieY = 200;
        }

        if(result == 2){
            zombieX = 100;
            zombieY = 600;
        }

        if(result == 3){
            zombieX = 1000;
            zombieY = 600;
        }

        if(result == 4){
            zombieX = 100;
            zombieY = 900;
        }

        if(result == 5){
            zombieX = 1000;
            zombieY = 900;
        }

        zombies[spawnedZombies] = new Rectangle((int)zombieX, (int)zombieY, 32, 48);
        spawnedZombies++;

        if(spawnedZombies == zombies.length){
            task.cancel();
        }

    }
};

public void tick() {

}

public void render(Graphics g) {

        g.setColor(Color.YELLOW);
        g.fillRect((int)zombieX, (int)zombieY, 32, 48);

}

public Rectangle getBounds() {
    return new Rectangle((int)zombieX, (int)zombieY, 32, 48);
}

}

也许你在渲染功能中渲染一个僵尸,你需要在僵尸中循环并渲染所有僵尸?你已经解决了所有问题,哈哈,谢谢!也许你在渲染功能中渲染一个僵尸,你需要在僵尸中循环并渲染它们?你已经解决了所有问题,哈哈,谢谢!