所以我一直在使用Robocode处理这个机器人,我希望它根据命令getEnergy()的结果改变它的颜色
然而,我似乎无法让它发挥作用。我创建的java代码如下:
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));
}
我做错了什么?
答案 0 :(得分:2)
这些代码段看起来很合理。 (虽然第一行getEnergy();
什么也没做。)有两件事情可以解释为什么你可能看不到颜色的变化。
run()
方法的顶部是不够的,因为它只在每轮开始时调用。它需要位于run()
内的循环中,每个刻度调用execute()
,或者像onScannedRobot()
那样频繁执行。您可以将System.out.println(getTime())
添加到这些块,并观察输出控制台以帮助进行故障排除。