Робокод (Java): как я могу заставить своего робота менять цвет в зависимости от результата getEnergy()?
Итак, я работал над этим роботом в Robocode, и я хочу, чтобы он менял свой цвет в зависимости от результата команды getEnergy()
Тем не менее, я не могу заставить его работать. Ява код, который я создал, выглядит следующим образом:
getEnergy();
if(getEnergy()>=90)
{
setBodyColor(new Color(0, 255, 0));
}if(getEnergy()<90 && getEnergy()>=40){
setBodyColor(new Color(0, 0, 255));
}if(getEnergy()<40){
setBodyColor(new Color(255, 0, 0));
}
Я также попробовал это:
getEnergy();
if(getEnergy()>=90)
{
setBodyColor(new Color(0, 255, 0));
}else if(getEnergy()>=40){
setBodyColor(new Color(0, 0, 255));
}else if(getEnergy()<40){
setBodyColor(new Color(255, 0, 0));
}
Что я делаю неправильно?
1 ответ
Эти фрагменты кода выглядят разумно. (Хотя первая строка getEnergy();
ничего не делает.) Две вещи приходят на ум, почему вы не видите изменения цвета.
- Этот код на самом деле выполняется каждый тик? Например, просто иметь это в верхней части вашего
run()
Метод не будет достаточным, так как он вызывается только в начале каждого раунда. Это должно быть в цикле внутриrun()
это зоветexecute()
каждый тик или что-то, что выполняется часто, какonScannedRobot()
, Вы могли бы добавитьSystem.out.println(getTime())
к этим блокам и смотреть вывод консоли, чтобы помочь устранить неполадки. - IIRC, в настройках Robocode есть возможность разрешать или запрещать роботам менять свои цвета во время матча. Это может быть отключено по умолчанию.