Author Archives: 方 佳為

用 PsychoPy coder 來學習 (2)

學習coder的第二篇文章。這一次要教大家如何自定義滑鼠,所使用的範例為CustomMouse。先打開PsychoPy的coder界面,然後找到Demos裡面的input之customMouse.py,按下Run,來看看coder怎麼運作吧!

螢幕截圖 2018-08-09 16.13.55

哇,比起上一篇文章,程式的行數多了一些,不過大家莫急莫慌!接下來就一一解釋程式中各行的意思,解釋不完全的地方也請大家多多包含!

行9:__future__ 這模組是用來讓Python2與Python3相容。這次會使用到的division 是除法結果是可以含有小數點。

行13:PsychoPy模組中import進來visual與event,其中visual是顯示相關模組,event是接受反應的模組。

行15:賦予win的定義,方便接下來直接以win來表示=後面的指令(visual.window)。設定顯示螢幕,由於這次沒特別設定螢幕的大小,所以就照內建默認的大小設定,以便結果輸出到下面視窗時可以看到。

行18-20:賦予vm的定義,同時也設定vm的顯示內容。top、bottom、 left、及right Limit表示鼠標在上、下、左、右可移動的距離限制。showLimitBox代表顯示由上下左右之距離限制所形成的移動範圍,True代表pointer顯示鼠標可移動之範圍;False則與True相反,即不顯示。clickOnUp代表計算點擊滑鼠左鍵反應的時機,True代表點擊滑鼠後將要離開之時刻;False則代表一開始點擊滑鼠之當下。

**customMouse之詳細設定請參考:http://www.psychopy.org/api/visual/custommouse.html#psychopy.visual.CustomMouse

行22-23:賦予instr之定義,設定指導語顯示的文字內容(text)與顯示位置(pos)。\n代表換行。

行24:賦予new_pointer之定義。以字母o來顯示鼠標。

行25:利用函式print(),將下列三項數據輸出至output視窗。滑鼠點擊位置、滑鼠滾輪位置及點擊時間。

行26-42:是個迴圈,只是會根據反應的不同而進入不同的結果。

行26:表示當反應為非任一按鍵反應,

行27-28:則將指導語與鼠標的資訊輸出到緩衝器,等待由螢幕輸出。

行29:把緩衝器(即行27-28的instr與vm)的內容顯示在視窗中。

若反應為任一按鍵反應則直接跳至行44:關閉視窗。

行30:如果反應為點擊滑鼠反應,

行31:則重設滑鼠,

行33-35:輸出三項數據至output視窗。行33的%.2f意思為取到小數點後兩碼;行35的%.3f意思為取到小數點後三碼。

行38:更改鼠標可移動至範圍。

行39:更改指導語。

行42:賦予vm.pointer定義,即行24。

若反應為任一按鍵反應則直接跳至行44:關閉視窗。

行44:關閉視窗。

以上就是Demos裡面的input之customMouse的程式說明~

然後,希望大家可以試著動手跑跑看,可以有助於理解哦~若有疑問也請留言,我會盡自己所能地回答!如果上述有錯誤的地方,也請大家不吝嗇地指出錯誤,讓我們可以共同進步!感恩!

額,或許有人看不懂行26-42的迴圈是怎麼回事,不過沒關係,我也是研究了許久才了解的!在此附上我研究許久的簡易圖~希望大家別嫌棄它~

螢幕截圖 2018-08-10 21.39.49

Leave a Comment

Filed under 用PsychoPy玩實驗