1

我有这个随机的敌人生成器。我想根据获得的分数改变他们的出生点。例如,我的普通敌人每次都会产生,当我的分数达到 100 个普通敌人时仍然会出现,但是会产生更难的敌人.. 有什么提示吗?

这是我随机生成敌人的代码

private int getRandomEnemy() {
        /*int randNumber = enemyGenerator.nextInt(150);
        if (randNumber < 70)
            return R.drawable.b1;
        else if (randNumber >= 139 && randNumber < 150)
            return R.drawable.b2;
        else if (randNumber >= 123 && randNumber < 138)
            return R.drawable.b3;
        else if (randNumber >= 117 && randNumber < 122)
            return R.drawable.b4;
        else if (randNumber >= 96 && randNumber < 116)
            return R.drawable.b5;
        else if (randNumber >= 90 && randNumber <= 95)
            return R.drawable.b6;
        else
            // n < 100, always holds
            return R.drawable.bigger;*/
    }

我试过这个

if(score < 100)
            return R.drawable.b1;
        else if(score >= 100)
            return R.drawable.bigger;
        else 
            return R.drawable.b2;

但是在这种方法中,在您击中 100 后,b1 敌人不再出现。谢谢~

4

1 回答 1

0

在 score > 100 之后不会创建 b1 ,因为您的逻辑规定它应该只在 score < 100 时生成 b1 。您可能会考虑将可绘制项目添加到通用列表中,然后返回此列表,而不是只返回一个类型。

例如。

List<Drawable> enemies = new List<Drawable>();

if (score < 100)
    enemies.Add(R.drawable.b1);

else if (score >= 100)
{
    enemies.Add(R.drawable.b1);
    enemies.Add(R.drawable.bigger);
}

else
{
    enemies.Add(R.drawable.b2)
}

return enemies;

请注意,这不是确切的逻辑,因为我不知道驱动您的可绘制对象的常见对象是什么,我只是假设它会被称为可绘制对象,但它可能是(并且可能是)其他东西。

于 2013-10-01T04:42:22.460 回答