【问题标题】:How can I measure and display the response time of pressing a key in Processing?如何测量和显示Processing中按键的响应时间?
【发布时间】:2020-04-20 11:51:30
【问题描述】:

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

用户应该能够通过按 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

  }

}

【问题讨论】:

  • Can someone help me how to fix this? 修复什么,编写程序或只是向您展示如何管理刺激变化之间的随机停顿?

标签: random timer keypress response-time


【解决方案1】:

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

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

  2. 将随机值分配给totalTime 这必须在函数setup() 中完成。

  3. 添加游戏的其余部分。 直到再次按下按键之前用户反应时间的实际测量,仍然缺失......

【讨论】:

    猜你喜欢
    • 2017-09-26
    • 2012-05-22
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多