Могу ли я запустить программу на Eclipse, которая открывает консоль, а затем открывает окно обработки? - PullRequest
1 голос
/ 07 июня 2019

Для моего класса AP Computer Science я провожу тест на личность покемона, в котором вы ответите на пару вопросов и узнаете, какой покемон вам больше всего нравится.Мы только что изучили обработку, и в конце года проект должен создать программу, которая использует то, что мы узнали.Итак, для моей индивидуальной викторины у меня есть код, который запускается в консоли затмения, и у меня есть игрок, отвечающий на пару вопросов, и я отслеживаю их ответы.Разные ответы подсчитывают разных покемонов, и в конце программы покемон, который вам больше всего нравится, - это тот, у кого больше всего голосов.Тем не менее, чтобы включить обработку, я хотел получить изображение покемона, и его звуковой эффект появится после завершения викторины.К сожалению, я не смог понять, как это сделать.Я могу что-нибудь сделать?

1 Ответ

1 голос
/ 07 июня 2019

Вариант 1 - Проверка перед запуском:

Вы можете отложить запуск Обработки следующим образом.Вы можете выполнить тест, а затем создать и запустить экземпляр класса обработки (здесь он называется PokemonSketch ).Как передать информацию из теста в экземпляр PApplet, зависит только от вас.

public static void main(String[] args) {
    //Quiz Code
    //Quiz Code
    //Quiz Code
    PokemonSketch sketch = new PokemonSketch();
    PApplet.runSketch(new String[]{""}, sketch);
}

Вариант 2 - Тест после запуска:

Здесь PApplet запускается немедленно итест, выполненный в setup().

Сначала инициализируйте ваш эскиз в режиме рендеринга FX2D обработки в вызове size ():

@Override
public void settings() {
    size(x, y, FX2D);
}

Теперь мы можем скрыть окно при запуске, выполнитьвикторина, и покажите окно после завершения (обработка будет затем запустить цикл отрисовки).

@Override
public void setup() {
    final PSurfaceFX FXSurface = (PSurfaceFX) surface;
    final Canvas canvas = (Canvas) FXSurface.getNative();
    final Stage stage = (Stage) canvas.getScene().getWindow();
    stage.hide();

    final Scanner reader = new Scanner(System.in);
    System.out.println("Enter a number: ");
    final int n = reader.nextInt();
    reader.close();

    stage.show();
}
...