2015-08-26 81 views
0

我有一個實驗組件,要求參與者在兩週內賺取10個即時點數或更大點數量(點數後來轉換爲美元金額以提供激勵「稍後更大」的選擇)。後來的金額根據之前的選擇而有所不同。參與者對他/她在下一個例程中做出的選擇給予反饋。要這樣設置,我在構建器生成該代碼中的組分:Psychopy:關鍵響應滯後,導致腳本內出現問題

if key_resp_4.keys == 'left': 
    feedback = 'You chose 10 points immediately' 
    TotalNow = TotalNow + 10 
    add = (amount - 10)/2 
    amount = add + amount 
elif key_resp_4.keys == 'right': 
    feedback = 'You chose more points in two weeks' 
    TotalLater = TotalLater + amount 
    amount = (amount + 10)/2 
elif key_resp_4.keys in ['', [], None]: 
    feedback = 'You did not make a choice. No reward given.' 
    amount = amount 

的「量」變量產生一個數字值,它是基於一個左或右響應更新。 「TotalNow」和「TotalLater」記錄每個條件獲得的總點數,並顯示在下一個屏幕中。這些變量工作得很好。

我的問題在於反饋變量。爲了更好地理解正在發生的事情,我已經完成了很多次腳本。對於大多數試驗(儘管不是全部) - 無論我是否按下按鍵,反饋屏幕都會打印指定的無響應消息:「您沒有做出選擇......」這是奇怪的部分,但。在反饋屏幕上,「TotalNow」/「TotalLater」變量顯示點值,指示我DID做出關鍵響應,即使「反饋」文本變量報告我沒有。此外,下一個試驗會正確顯示更新的「金額」變量。

因此,下一個例程中的「反饋」變量所顯示的鍵響應和結果之間似乎存在一些脫節。我懷疑關鍵的反應可能會滯後。我懷疑這是因爲我發現我能夠在一次試驗中做出兩個關鍵的反應(如下一個例程中顯示的總分中出現的額外點所證明的)。我已經設置了關鍵響應組件來強制例程結束,只存儲第一個鍵,並放棄任何以前的響應。儘管有了這些設置,但可以做出兩個響應。

有沒有人有關於爲什麼發生這些事件的想法?我爲此感到困惑。任何幫助深表感謝。

-Ben

+1

有幾種可能的解釋。 key_resp_4之後的例程中的代碼組件?它是在例程頂部還是在比顯示「feedback」和「amount」的文本更早的例程中?如果沒有任何這些,嘗試這樣做。 –

+0

代碼組件設置爲在收集key_resp_4的例程結束時啓動。我將代碼組件移至下一個例程的開始位置,該例程顯示反饋變量。金額只是爲了下一個循環而更新。這種變化之後,問題仍然以類似的方式持續存在。看起來鍵盤組件啓動緩慢。有問題的程序持續一秒鐘,並且鍵盤元件在僅僅一次按壓(因爲它應該是)後很少工作,除非在接近一秒鐘時間結束時被按下。 –

+0

如果您認爲它會有幫助,我可以添加PsychoPy編寫的有關在例程中啓動key_resp_4的代碼。 –

回答

0

這是一個相當令人不滿意的答案,但我按照喬納斯的意見,然後通過去除多餘的循環,通過實驗的編程變得過時首先解決了這個問題。這並沒有具體回答關鍵響應爲什麼滯後的問題,但現在看來運行良好。

相關問題