簡體   English   中英

每當按下鍵時,繼續進行另一種刺激

[英]Moving on to another stimulus whenever a key is pressed

我正在設置一個心理心理實驗,其中在屏幕上顯示刺激一段時間(例如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)。 我似乎無法弄清楚該如何實現。

簡短的答案是event.waitKeys()默認清除事件隊列,以便僅檢測到新的按鍵。 您可以通過重寫以下行為獲得所需的行為:

keysarray = event.waitKeys(clearEvents=False)

但是我認為調用該函數之前按下的鍵不會記錄有用的響應時間(盡管在3.1版中鍵盤處理發生了很大變化)。

話雖如此,此代碼還有很多其他問題,可以加以改進以適應更理想的PsychoPy風格。 我建議將其發布在https://discourse.psychopy.org的用戶論壇上。 該論壇比SO上的單個問題/答案格式更適合來回討論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM