我正在设置一个关于精神病的实验,其中刺激物在屏幕上显示一段设定的时间(比如 0.5 秒),然后显示一个空白屏幕并注视。我正在使用 event.waitKeys() 来获取键盘输入。
我已经编写了以下代码。
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 的等待时间在第一个屏幕结束之前收到键盘输入,events.waitKeys() 不会注册这个键输入,仍然在第二个屏幕上等待用于键盘输入。仅当接收到第二个屏幕的键输入时,程序才会前进。
相反,我希望程序在屏幕 1 开始到屏幕 2 结束之间出现键盘输入时进入下一个刺激。也就是说,如果在屏幕 1 本身中接收到键盘输入(在 0.5 结束之前s),我希望输入被注册并且程序继续到下一个刺激(通过在很短的时间内移动到屏幕 2,或者一起跳过屏幕 2)。我似乎无法弄清楚这是如何实现的。