如何测量和显示 Processing 中按键的响应时间?

How can I measure and display the response time of pressing a key in Processing?

我是编程(和 Whosebug)的新手,所以如果我在发布这个问题时犯了错误,请原谅我。 目前正在尝试构建一个程序,基本上可以让您测量用户在视觉信号出现后按下一个键需要多长时间。

用户应该可以通过按 SPACE 键开始实验。 在随机时间(2 到 6 秒之间),字段的颜色会发生变化(例如,黑色变为红色)——这就是刺激。 当字段变为红色时,程序等待用户按下 SPACE 键并测量所需的时间。 测量的时间存储在一个数组中并显示在屏幕上。 通过按“a”键,实验结束并显示结果(例如,平均时间和标准偏差)。 再次按下 SPACE 键,开始新的实验。

到目前为止,我只设法制作了一个恰好在 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

  }

}

问题是变量 totalTime 始终保持在 6000(毫秒),因此用户将始终观察到第一次按键和显示变化之间的相同持续时间。 为了添加此行为,需要执行以下步骤:

  1. 获取随机源。 用C语言,最简单的就是调用标准库函数 rand()。 这个函数returns一个伪随机数,这样的玩具应用绝对够用了

  2. 将随机值赋给totalTime. 这必须在函数 setup().

  3. 中完成
  4. 添加游戏的剩余部分。 直到再次按下该键为止的用户反应时间的实际测量仍然缺失...