2017-01-03 2 views
0

Ich muss einen Test ausführen, bei dem das Subjekt eine Linie mit der Tastatur während des Tests drehen kann.Psychopy, Ändern der Polygon-Eigenschaften mit der Tastatur

Ich habe viel gesucht, aber ich habe keine gute Antwort gefunden.

Bisher habe ich versucht, dies:

p = 0 
polygon = visual.Line(
    win=win, 
    name='polygon', 
    units='cm', 
    start=(-(2, 0.5)[0]/2.0, 0), 
    end=(+(2, 0.5)[0]/2.0, 0), 
    ori=p, 
    pos=(0, 0), 
    lineWidth=1, 
    lineColor=[1,1,1], 
    lineColorSpace='rgb', 
    fillColor=[1,1,1], 
    fillColorSpace='rgb', 
    opacity=1, 
    depth=0.0, 
    interpolate=True 
) 

while True: 
    resp_key = event.waitKeys(keyList=['n','m','return']) 

    if resp_key == 'n': 
     p = p-1 
    elif resp_key == 'm': 
     p = p+1 
    elif resp_key == 'return': 
     break 

Dank!

Antwort

1

Nachdem Sie den Wert von p geändert haben, müssen Sie ihn dann auf Ihr Linienobjekt anwenden, um seine Eigenschaften zu aktualisieren, und dann auf den Bildschirm zeichnen.

z.B. so etwas wie:

polygon.ori = p 
polygon.draw() 
win.flip() 

Beachten Sie auch, dass event.waitKeys() eine Liste der Schlüssel zurückgibt, auch nur für einen einzigen Tastendruck. So Ihre Schecks für Schlüssel sollten tatsächlich so aussehen:

if 'n' in resp_key: 

statt:

if resp_key == 'n': 

überprüfen Sie auch die shapes.py Demo unter dem Demo Menü in PsychoPy Coder Ansicht für einige Beispiele von dynamischen Aktualisieren von Polygonen. Obwohl diese Demo keine Tastaturinteraktion verwendet, könnte sie dennoch für Sie nützlich sein.

Verwandte Themen