敌人';被渲染后的幻灭(Java游戏)
我在60秒内制造了60个敌人,但是当1个敌人被渲染时,前一个敌人不知何故被移除并替换为下一个敌人。我不明白为什么会发生这种情况,渲染方法在我的游戏循环中每秒都被调用 这是我试图让它发生的敌人阶级,任何帮助都将不胜感激 公共类僵尸群扩展游戏对象{敌人';被渲染后的幻灭(Java游戏),java,Java,我在60秒内制造了60个敌人,但是当1个敌人被渲染时,前一个敌人不知何故被移除并替换为下一个敌人。我不明白为什么会发生这种情况,渲染方法在我的游戏循环中每秒都被调用 这是我试图让它发生的敌人阶级,任何帮助都将不胜感激 公共类僵尸群扩展游戏对象{ Rectangle[] zombies = new Rectangle[60]; Timer timer = new Timer(); int spawnedZombies = 0; int zombieX, zombieY; public Zom
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);
}
}也许你在渲染功能中渲染一个僵尸,你需要在僵尸中循环并渲染所有僵尸?你已经解决了所有问题,哈哈,谢谢!也许你在渲染功能中渲染一个僵尸,你需要在僵尸中循环并渲染它们?你已经解决了所有问题,哈哈,谢谢!