Валидатор хочет проверку Х на достижение пределов ПОСЛЕ проверки направлений и изменения Х. Но. Зачем проверять Х < 0 после увеличения и на превышение ширины после уменьшения? Хотелось так:
public void move() {
        if (isAlive) {
            if (direction == Direction.LEFT) {
                x--;
// Х уменьшился, проверяем нижний предел:
                if (x < 0) x = 0;
            }
            if (direction == Direction.RIGHT) {
                x++;
// Х увеличился, проверяем верхний предел:
                if (x + width > SpaceInvadersGame.WIDTH) x = SpaceInvadersGame.WIDTH - width;
            }
        }
    }
А не пропускает((( Но если проверки вынести вниз - то все хорошо, но лишнее действие.