#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:
Решение для генерации случайной задержки пули состоит в том, чтобы изменить эту задержку при выстреле вражеского звездолета.