2017-05-11 8 views
1

心理学​​的な作業を作成するのにPsychopyを使用しています。与えられたルーチンでは、ポリゴン(四角形)の高さは、キーが押されるたびに(毎回同じキー)、最大のキー押下回数(例えば10)に達するまで増やしてください。同じルーチン内のキーの押下回数をカウントするループを作成する方法や、ポリゴンのサイズを常に更新する変数を生成するためにこれを使用する方法を理解できません。ここで Psychopyで累積キーを押してポリゴンのサイズを更新する方法

は、私はしばらくループで立ち往生ルーチンのコードのようにしようとしているものです...とループは、「ルーチンの前に」コードまたは「各フレーム」

のために行く必要があるかどうかはわかりません
total_key_count = 0 
while True: 
    resp_key = event.waitKeys(keyList=['1']) 
if resp_key == '1': 
    total_key_count = total_key_count + 1 
# .. or break out of the loop if reach 10 
elif total_key_count == 10: 
    break 

ありがとうございました!

答えて

0

event.waitKeys()をBuilderコードコンポーネントで使用しないでください。ビルダーは、画面を更新し、すべての画面の更新時にイベントに応答する必要がある描画ループを中心に構成されています。 waitKeys()に電話すると、キーが押されるまで実行を完全に一時停止し、Builderの一時的な構造を完全に破棄します。 Begin routineタブで

、この置く:Each frameタブで

key_count = 0 
max_keys = 10 

、この置く:waitKeys()とは異なりgetKeys()は、単にキー押下のために瞬時にチェックすること

key_press = event.getKeys('1') 
if key_press: # i.e. if list not empty 
    key_count = key_count + 1 
    if key_count <= max_keys: 
     # increment the height of the stimulus by some value 
     # (use what is appropriate to its units): 
     your_stimulus.size[1] = your_stimulus.size[1] + 0.1 
    else: 
     # terminate the routine (if required) 
     continueRoutine = False 

注意を。すなわち、キーを待っている間、一時停止しない。このコードは、必要な数のキーが押されるまで、すべての画面の更新時に実行されるため、これは問題ありません。

おそらく、応答に関するデータも保存する必要があります。これは、End routineタブで最も適切に行われます。

thisExp.addData('completion_time', t) # or whatever needs recording 
関連する問題