1

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

用户应该能够通过按空格键开始实验。在随机时间(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

  }

}
4

1 回答 1

0

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

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

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

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

于 2020-04-23T21:01:23.783 回答