Как я могу измерить и отобразить время отклика нажатия клавиши в обработке? - PullRequest
1 голос
/ 20 апреля 2020

Я новичок в программировании (и stackoverflow), так что прости меня, если я делаю ошибки, публикуя этот вопрос. В настоящее время пытаются создать программу обработки, которая в основном позволяет измерить, сколько времени пользователю требуется нажать клавишу после появления визуального сигнала.

Пользователь должен иметь возможность начать эксперимент, нажав клавишу ПРОБЕЛ , В случайное время (от 2 до 6 секунд) цвет поля будет меняться (например, с черного на красный) - это стимул. Когда поле поменялось на красный, программа ждет, пока пользователь нажмет клавишу ПРОБЕЛ, и измеряет необходимое время. Измеренное время сохраняется в массиве и отображается на экране. При нажатии клавиши «а» эксперимент заканчивается, и отображаются результаты (например, среднее время и стандартное отклонение). При повторном нажатии клавиши ПРОБЕЛ запускается новый эксперимент.

Пока что мне удалось создать фон, который меняет цвет ровно за 6 секунд. Это должно быть случайно между 2 и 6 секундами, иначе стимул не появится случайно.

Может кто-нибудь помочь мне, как это исправить?

Код:

int savedTime;

int totalTime = 6000;

void setup() {

  size(200, 200);

  background(0);

  savedTime = millis();

}

void draw() {

  // Calculate how much time has passed

  int passedTime = millis() - savedTime;

  // seconds passed?

  if (passedTime > totalTime) {

    println("... seconds have passed!");

    background(255,0,0); // Color a new background

    savedTime = millis(); // Save the current time to restart the timer

  }

}

1 Ответ

0 голосов
/ 24 апреля 2020

Проблема в том, что переменная totalTime постоянно остается на 6000 (миллисекундах), поэтому пользователь всегда будет наблюдать одинаковую продолжительность между первым нажатием клавиши и изменением дисплея. Чтобы добавить это поведение, необходимы следующие шаги:

  1. Получить случайный источник. С языком C проще всего вызвать стандартную библиотеку функция rand(). Эта функция возвращает псевдослучайное число , которого абсолютно достаточно для такого игрушечного приложения.

  2. Назначьте случайное значение для totalTime. Это необходимо сделать с помощью функции setup().

  3. Добавить остальные части игры. Фактическое измерение времени реакции пользователя до нажатия клавиши. снова нажата, все еще отсутствует ...

...