我正在做一个关于精神病的实验,在这个实验中,一个刺激会在屏幕上显示一段时间(比如说0.5秒),然后一个空白的屏幕就会出现一个固定的画面。我在用事件.等待键()以获取键盘输入。你知道吗
我编写了以下代码。你知道吗
for i in range (1, 21):
answer = cf.Stimulus() #This is a function for generating the stimulus
img = visual.ImageStim(
win=win,
image="temp.jpg",
units="pix"
)
img.draw() #This is the first screen
fixation.draw()
win.flip()
core.wait(0.5)
fixation.draw() #This is the second screen
win.flip()
keysarray = event.waitKeys()
os.remove('temp.jpg')
我在这里遇到的问题是,如果在第一个屏幕的等待时间0.5结束之前收到了键盘输入,事件.等待键()未注册此键输入,仍在第二个屏幕上等待键盘输入。只有在接收到第二个屏幕的按键输入时,程序才会向前移动。你知道吗
相反,我希望程序在屏幕1开始到屏幕2结束之间出现键盘输入时转到下一个刺激。也就是说,如果键盘输入是在屏幕1本身接收到的(在0.5s结束之前),我希望输入被注册,程序进入下一个刺激(或者在很短的时间内移动到屏幕2,或者一起跳过屏幕2)。我似乎不知道如何才能做到这一点。你知道吗
这里的简单答案是
event.waitKeys()
默认为清除事件队列,因此只检测到新的按键。您可以通过覆盖以下内容来获得所需的行为:但我认为,在调用函数之前按下的键不会记录有用的反应时间(尽管3.1版中的键盘处理发生了很大变化)。你知道吗
话虽如此,这段代码还有很多其他问题需要改进,以适应更理想的心理风格。我建议在https://discourse.psychopy.org的用户论坛上发布。这个论坛比SO的单一问答形式更适合反复讨论。你知道吗
相关问题 更多 >
编程相关推荐