每当按下键时,请继续进行另一种刺激



我正在对精神拷贝进行实验,其中刺激在屏幕上显示了一定的时间(例如0.5S(,然后用一个空白屏幕显示固定。我正在使用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结束之前已收到键盘输入,则event.waitkeys((未注册此键输入,并且仍在等待键盘输入的第二个屏幕。该程序仅在接收第二个屏幕的密钥条目时向前移动。

相反,我希望该程序在屏幕1到屏幕末尾之间介绍键盘输入时,进入下一个刺激。也就是说,如果在屏幕1中收到键盘输入我希望注册输入的0.5末(,并继续进行下一个刺激(通过将屏幕2移至非常短的时间持续时间,或者将屏幕2一起跳到屏幕2(。我似乎无法弄清楚如何实现这一目标。

这里的简短答案是 event.waitKeys()默认可清除事件队列,因此只能检测到新的按键。您可以通过覆盖以下方式获得所需的行为:

keysarray = event.waitKeys(clearEvents=False)

但是我认为在调用该功能之前按键不会记录有用的反应时间(尽管键盘处理在版本3.1中发生了很大变化(。

话虽如此,此代码还有许多其他问题可以改进,以适合最佳的心理拷贝风格。我建议在https://discourse.psychopy.org上的用户论坛上发布它。该论坛更适合来到来回讨论,而不是在此处的单个问题/答案格式。

相关内容

  • 没有找到相关文章