Как я могу рандомизировать задержку движущегося объекта

#java #android

#java #Android

Вопрос:

Недавно я добавил, что враг стреляет, но, к сожалению, я не могу рандомизировать задержку стрельбы для каждого объекта.

Проект 60 раз в секунду :

  • обновление (весь код здесь связан с этой частью)
  • рисовать
  • сон

Фрагмент кода :

Фрагмент кода.

     public void createNewEnemyBullet(){
    for(Enemy enemy: enemies){
        EnemyBullet enemyBullet = new EnemyBullet(getResources());
        randomShot = random.nextInt(60-40) 40;

     
        System.out.println("Randomowy shot :"  randomShot);
        enemyBullet.x = (int) (((enemy.x enemy.widthEnemy/2)-18)*screenRatioX);
        enemyBullet.y= enemy.y 20;

        enemyBullets.add(enemyBullet);
    }

    System.out.println("nn");
}
  

Скриншот моего результата

введите описание изображения здесь

Ответ №1:

Используйте Math.random() . Это будет ваш друг здесь. Сравните ( Math.random() <= epsilon ) вывод random() с некоторым числом epsilon , которое вы хотите использовать в качестве порога для принятия решения о стрельбе по врагу.

Если enemyBullets это то, что код пользовательского интерфейса использует для рисования маркеров, вы можете добавить Thread.sleep(Math.random()) , чтобы добавить переменную задержку при их добавлении.

Комментарии:

1. Я получил случайное число, но как я могу подразумевать это для задержки пули

2. я получил 5 вражеских самолетов. как я могу изменить скорость пули для каждого другого различия

3. Используйте Math.random() 5 раз и добавляйте каждое случайное число, сгенерированное в enemyBullet x или y, по желанию. Возможно, даже сгенерировать два случайных числа для каждого врага — одно для x и одно для y. Если это решит проблему для вас, не забудьте проголосовать и принять ответ 🙂

4. если бы я использовал ваш метод, это было бы то же самое, что и сейчас, используя random.nextInt(); Как я могу изменить задержку пули для каждого из вражеских самолетов?

5. могу ли я отправить вам сообщение куда-нибудь? Все еще не знаю, как это сделать. Я имею в виду, я понимаю вашу идею, но как я могу относиться к таким врагам, как if (враги [0]) и что дальше. Вы меня понимаете?

Ответ №2:

Решение для генерации случайной задержки пули состоит в том, чтобы изменить эту задержку при выстреле вражеского звездолета.