按分数重生敌人

时间:2013-10-01 03:27:42

标签: android surfaceview

我随机拥有这个敌人的发生器。我想根据得分改变他们的产卵。例如我的正常敌人每次都会产生,当我的分数达到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敌人不再出现了。 感谢〜

1 个答案:

答案 0 :(得分:0)

分数&gt;后未创建

b1; 100因为你的逻辑规定它只应该在得分&lt;时得到b1 100.您可以考虑将可绘制项添加到通用列表中,然后返回此列表,而不是仅返回单个类型。

例如

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;

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