2017-01-03 90 views
0

我需要运行一个测试,在测试过程中主体能够用键盘旋转一条线。psychopy,用键盘改变poligon特征

我一直在寻找很多,但我还没有找到一个好的答案。

到目前为止,我已经试过这样:

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 

谢谢!

回答

1

更改p的值后,您需要实际将其应用于线对象以更新其特征,然后将其绘制到屏幕上。

例如是这样的:

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

另外,还要注意event.waitKeys()返回键列表,甚至只是一个单一的按键。所以,你的检查钥匙实际上应该是这样的:

if 'n' in resp_key: 

而不是:

if resp_key == 'n': 

而且在动态更新多边形的一些例子PsychoPy编码器视图演示菜单下检查了shapes.py演示。虽然该演示不使用键盘交互,但它可能对您仍然有用。