我正在使用心灵创造心理任务。对于给定的例程,我希望多边形(矩形)的高度随着每次按键(每次都是相同的键)而增加,直到达到最大按键次数(例如10)。我无法弄清楚如何创建一个循环来计算同一例程中的按键次数,也不知道如何使用它来生成一个不断更新多边形大小的变量。
以下是我在例程中尝试的代码,它被卡在while循环中...而且我不确定循环是否应该进入代码"在例程之前"或者用于"每个框架"
total_key_count = 0
while True:
resp_key = event.waitKeys(keyList=['1'])
if resp_key == '1':
total_key_count = total_key_count + 1
# .. or break out of the loop if reach 10
elif total_key_count == 10:
break
谢谢!
答案 0 :(得分:0)
切勿在Builder代码组件中使用event.waitKeys()
。 Builder是围绕绘图循环构建的,需要更新屏幕并在每次屏幕刷新时响应事件。如果你打电话给waitKeys()
,你就会完全暂停执行,直到按下一个键,这将完全破坏Builder的时间结构。
在Begin routine
标签中,输入:
key_count = 0
max_keys = 10
在Each frame
标签中,输入:
key_press = event.getKeys('1')
if key_press: # i.e. if list not empty
key_count = key_count + 1
if key_count <= max_keys:
# increment the height of the stimulus by some value
# (use what is appropriate to its units):
your_stimulus.size[1] = your_stimulus.size[1] + 0.1
else:
# terminate the routine (if required)
continueRoutine = False
请注意getKeys()
与waitKeys()
不同,只是即时检查按键。即它不会暂停,等待一把钥匙。这很好,因为这段代码将在每次屏幕刷新时运行,直到按下所需数量的键为止。
据推测,您还需要保存一些有关响应的数据。最好在End routine
标签中进行,例如
thisExp.addData('completion_time', t) # or whatever needs recording