我需要运行一个测试,测试期间主体能够用键盘旋转一条线。
我一直在寻找,但我没有找到一个好的答案。
到目前为止,我已经尝试过这个:
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
谢谢!
答案 0 :(得分:1)
更改p
的值后,您需要将其实际应用于线对象以更新其特征,然后将其绘制到屏幕上。
e.g。类似的东西:
polygon.ori = p
polygon.draw()
win.flip()
另外,请注意event.waitKeys()
会返回一个键列表,即使只有一个按键也是如此。因此,您对密钥的检查应该看起来像这样:
if 'n' in resp_key:
而不是:
if resp_key == 'n':
另请参阅PsychoPy编码器视图中演示菜单下的shapes.py
演示,了解动态更新多边形的一些示例。虽然该演示不使用键盘交互,但它可能仍然对您有用。