Java 如何在游戏的每个关卡随机产生敌人

Java 如何在游戏的每个关卡随机产生敌人,java,Java,我正在用Java制作一个相对简单的游戏,游戏的目标是在不同级别的敌人中生存。 每升一到两级,已有的敌人就会增加一到两个,每升十级就会有一场boss战 示例:如果一级生成一个敌人,二级可以生成一个或两个,添加到现有的敌人中。如果二级生两个敌人,三级也可以额外生一到两个敌人。第十级将永远有一个老板与一个明确的敌人类型的老板战斗 产卵系统的示例如下所示: if (hud.getLevel() == 2) { handler.addObject(new BasicEnemy(r.nextInt(

我正在用Java制作一个相对简单的游戏,游戏的目标是在不同级别的敌人中生存。 每升一到两级,已有的敌人就会增加一到两个,每升十级就会有一场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));
}
游戏的目的是要持续一段伪无限长的时间,但这种系统是不可能做到的。我将如何配置它,使其在每一关卡中永远繁殖一个或多个敌人


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

第一层,我们有两个敌人。然后是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));
}
for(int i=0;i
所以这将非常简单。我假设你已经有了一个可以切换等级的系统,而你想要的只是产卵。我会这样做:

// 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
}
//您的字段
随机r=新随机();
int lastAmount=0;
//你的产卵方法
如果(hud.getLevel%10!=0){
整数金额=r.nextInt(2)+1+上次金额;
lastAmount=金额;
对于(int i=0;i
“一个或两个”你是说,一级有1个敌人,2级有2个,3级有1个,依此类推,还是说随机概率是1或2?随机概率是1或2,是的,你所描述的例子并没有遵循我所看到的任何模式,你必须自己找出一个。但是请检查我的答案;随机生成是需要这样做的。我修改了我的回答以适应您的生成算法。啊,请注意,这是一种非随机的方式。我认为一个简单的random.nextBoolean和if语句可以解决您将成为专家的问题,SomeRandomGuy!!:)是的,一个解决方案是从循环中的控制值中添加/减去一些随机数。OP:查看有关生成随机数的信息!我试过这个,但它并不完全符合我的要求。如果你想再看一遍的话,我编辑了我的文章,让它更具体一点:)