2017-02-13 7 views
0

に押されていない場合、私は時間が> 1秒である場合は、「スペース」が押されていない場合に再生するサウンドを取得しようとしていますし、「スペース」がプレイサウンドスペースがPsychopy

alarm = sound.Sound(700, secs = 5) 

if (len(event.getKeys())==0) & (time1.getTime() > 1): 
    alarm.play() 
elif event.getKeys(keyList = 'space'): 
    alarm.stop() 
押された場合、それを停止します

しかし、これを行うと、アラームを止めるために「スペース」を押すことができません。 誰でも私がここで間違っていることを教えてもらえますか? 'len(event.getKeys())== 0)'部分に問題がありますか?

Matlabのでは、私はちょうど

if ~KbCheck && ..... 

を書くことができますが、私はPsychopyでそれを行う方法がわからないです。

ありがとうございます!

答えて

1

event.getKeys(keyList=['space'])を使用してください。 keyListはリストであり、文字列ではありません。また、eventList.getKeys()の最初の呼び出しでキーボードのバッファーがすべてのキーをクリアして以来、ロジックの順序を変更します。elifに何も登録されないようにkeyListが提供されていないためです。

は、これはトリックを行う必要があります:あなたが見ることができるように

if event.getKeys(keyList = ['space']): 
    alarm.stop() 
elif time1.getTime() > 1 and not event.getKeys(): # if another key was pressed... #added brackets here 
    alarm.play() 

が、私もテストのいずれかの構文を簡素化。

+0

コードに若干の変更を加えるだけです。 if(event.getKeys())&time1.getTime()> 1の場合: – TYL

+0

余分な括弧を避けるために、私はその行をさらに変更しました。問題を解決した場合には、この回答を解決策としてマークすることを検討してください。 –

関連する問題