Метод onScannedRobot не вызывается в Robocode

Я создаю простой робот в Robocode. У меня есть функция стены, показанная ниже:

public void walls() {
        see = false;
        wallBool = true;
        double maxMove = Math.max(getBattleFieldWidth(), getBattleFieldHeight());
        turnLeft(getHeading() % 90);
        ahead(maxMove);

        see = true;
        turnRight(90);
        turnGunRight((getHeading() - getGunHeading())+ 90);

        while (getEnergy() <= 115) {
            wallBool = true;
            see = true;
            ahead(maxMove);
            see = false;
            turnRight(90);
        }
    }

Обратите внимание, что see а также wallBool переменные, которые уже были объявлены ранее в моем коде. В цикле while внутри функции я вызываю turnRight(); метод, который должен автоматически сканировать других роботов. Тем не менее, мой код не работает в моем onScannedRobot функция, включенная ниже:

public void onScannedRobot(ScannedRobotEvent e) {
    System.out.println("check");
    if (see==true) {
        System.out.println("check2");
        scan();
    }

    if (wallBool==true) {
        fire(2);
    }

Чек никогда не выводится на консоль. В чем дело?

Любая помощь будет принята с благодарностью...

1 ответ

Пожалуйста, убедитесь, что вы поставили import robocode.ScannedRobotEvent; в импорте. Также сохраняйте public void onScannedRobot(ScannedRobotEvent e) ниже public void run() Функция в случае, если вы изменили порядок.

Другие вопросы по тегам