Robocode(java):如何让我的机器人根据getEnergy()的结果改变颜色?

时间:2013-06-14 10:50:50

标签: java colors robocode

所以我一直在使用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)); 
    }

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这些代码段看起来很合理。 (虽然第一行getEnergy();什么也没做。)有两件事情可以解释为什么你可能看不到颜色的变化。

  • 这个代码实际上每次都会被执行吗?例如,将此放在run()方法的顶部是不够的,因为它只在每轮开始时调用。它需要位于run()内的循环中,每个刻度调用execute(),或者像onScannedRobot()那样频繁执行。您可以将System.out.println(getTime())添加到这些块,并观察输出控制台以帮助进行故障排除。
  • IIRC,Robocode设置中有一个选项允许或禁止机器人在比赛期间改变颜色。默认情况下可能会禁用它。