如何在游戏中的每个级别随机生成敌人

时间:2015-05-13 01:04:18

标签: java

我正在用Java制作一个相对简单的游戏,其目标是在不同级别的敌人中生存。 每个级别一到两个敌人被添加到已经存在的敌人中,并且每十个级别就有一个boss战。

示例:如果第一级产生一个敌人,第二级可以产生一个或两个,添加到已存在的一个。如果第二级产生两个敌人,第三级也可以产生额外的一到两个敌人。第十级将始终与一个明确的敌人类型的Boss进行boss战。

产卵系统的样本如下所示:

if (hud.getLevel() == 2) {
    handler.addObject(new BasicEnemy(r.nextInt(Game.WIDTH - 50), r.nextInt(Game.HEIGHT - 50), ID.BasicEnemy, handler));
    handler.addObject(new BasicEnemy(r.nextInt(Game.WIDTH - 50), r.nextInt(Game.HEIGHT - 50), ID.BasicEnemy, handler));
}

游戏意味着继续伪无限的时间,但这对于这种系统是不可能的。我如何配置它以永久产生一个或每个级别的敌人?

编辑:另外,我应该注意到我有多种类型的敌人。

2 个答案:

答案 0 :(得分:0)

所以第一级,我们有2个敌人。然后4.然后6.然后7.依此类推。因此,我们可以执行以下操作来增加每个级别的数量,其中hud.getLevel() * 2是敌人的数量:

for (int i = 0; i < hud.getLevel() * 2; ++i) {
    handler.addObject(new BasicEnemy(r.nextInt(Game.WIDTH - 50), r.nextInt(Game.HEIGHT - 50), ID.BasicEnemy, handler));
}

答案 1 :(得分:0)

所以这很简单。我假设你已经有一个系统可以切换水平,而你正在寻找的就是产卵。我就是这样做的:

// your fields
Random r = new Random();
int lastAmount = 0;

// your spawning method
if(hud.getLevel % 10 != 0) {
    int amount = r.nextInt(2) + 1 + lastAmount;
    lastAmount = amount;
    for(int i = 0; i < amount; i++) {
        // you can have another random generation for enemy types in here
        handler.addObject(... // add your enemy
    }
} else {
    // spawn your boss
}