[英]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.