在Android Studio中随机创建敌人

在Android Studio中随机创建敌人,android,random,Android,Random,我正在制作我的第一个android游戏,我想每三秒创建一个随机的敌人,我有六个敌人,但我的代码不起作用 我不知道我遗漏了什么或做错了什么,我在(rand==0)和(rand==1)下面有一条红线 请帮忙 我正在使用的代码: if (EnemyElapsed > (2000-alien.getScore()/4)){ switch ((int) (rand.nextDouble() * (2))) { if(rand == 0){ enemy.

我正在制作我的第一个android游戏,我想每三秒创建一个随机的敌人,我有六个敌人,但我的代码不起作用

我不知道我遗漏了什么或做错了什么,我在
(rand==0)
(rand==1)
下面有一条红线

请帮忙

我正在使用的代码:

if (EnemyElapsed > (2000-alien.getScore()/4)){
    switch ((int) (rand.nextDouble() * (2))) {
        if(rand == 0){
            enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10,60, 250, 250, alien.getScore(), 2));
            enemyStartTime = System.nanoTime();
        }
        else if(rand == 1){
            enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.aalien), WIDTH + 10,60, 250, 250, alien.getScore(), 2));
            enemyStartTime = System.nanoTime();
        }
    }
}

你的问题

rand
是一个对象,不能将其与
int
进行比较

这就是为什么在
(rand==0)
(rand==1)
下面有红线的原因


解决方案

必须使用case而不是if/else

if (EnemyElapsed > (2000-alien.getScore()/4)){
        switch ((int) (rand.nextDouble() * (2))) {

            case 0:
               enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.dog), WIDTH + 10,60, 250, 250, alien.getScore(), 2));
               enemyStartTime = System.nanoTime();
            break;

            case 1:
               enemy.add(new Enemy(BitmapFactory.decodeResource(getResources(), R.drawable.aalien), WIDTH + 10,60, 250, 250, alien.getScore(), 2));
               enemyStartTime = System.nanoTime();
            break;

        }
    }

将鼠标悬停在红线上方,查看错误消息,修复错误。您需要查看开关如何工作。它工作正常,谢谢,没有红线,但它会随机显示吗??