0

私が書いているコードは、画面に図形を表示し、上下の矢印キーを使用して図形を操作できるようにします。私がやろうとしてきたのは、キープレスのシーケンスに応じて形状が変化する量を作ることです。入力が最初のキー押下と同じである限り、形状の変化量は大きくなります。ただし、キー押下の最初の「反転」が発生した場合 (たとえば、微調整を行うため)、その時点以降のすべてのキー押下 (最初のボタン押下と同じであるかどうかに関係なく) は、はるかに小さな割合で円を変更する必要があります。 (インタラクティブではなく、2cm ではなく 0.1cm の変化です)。コードはサイコピーで書かれています。

このためにループを設定する方法を把握していないと思いますが、やりたいことを実行するためにループをどのように変更できるかわかりません。最小限の例ではなく、実際のコードについてお詫び申し上げます。アドバイスをいただければ幸いです。

for thisTrial in trials:
    endKey = 0
    nKeypress = 0
    count = 0
    counting = 0
    if thisTrial == 'ellipse':
        ellipseHeightinit = 7.6,1.9 + (round(numpy.random.uniform(-1,1),1))
    elif thisTrial == 'circle':
        ellipseHeightinit = 7.6,7.6 + (round(numpy.random.uniform(-1,1),1))
    ellipseHeight = ellipseHeightinit
    ellipseStim.setSize(ellipseHeight, log = False) # set the initial size of the shape  
    while endKey == 0:
        ellipseStim.setAutoDraw(True)
        win.flip() # flip the window to see the stimuli
        allKeys = event.waitKeys() 
        if count < 1: #store the first keypress made
            for thisKey in allKeys:
                firstKeypress = thisKey
                count += 1
                event.clearEvents()
        for thisKey in allKeys: # change the size of the shape depending on key pressed
            if thisKey == 'up':
                nKeypress = nKeypress + 1
            elif thisKey == 'down':
                nKeypress = nKeypress - 1
            elif thisKey == 'space':
                endKey = 1
            while counting < 1: # attempt to make step size large until reversal
                if thisKey == firstKeypress:
                    ellipseHeight = 7.6, ellipseHeightinit[1] + nKeypress*20
                    break
                elif thisKey != firstKeypress:
                    ellipseHeight = 7.6, ellipseHeightinit[1] + nKeypress*0.1
                    counting += 1
                    break
       ellipseStim.setSize(ellipseHeight, log = False) # set new shape size     
    ellipseStim.setAutoDraw(False)
4

1 に答える 1

1

最後に押されたキーと、最後に使用された移動量をどこかに保存する必要があります。押された新しいキーが同じ場合、金額を大きくします。それ以外の場合は、最小値に設定します。

于 2013-02-08T09:51:25.843 に答える