按键后跳转到下一个试验
jump to next trial after key press
在我的实验中,我进行了 10 次试验,在每次试验中,参与者必须在看到动画中的颜色变化后尽快按下一个键 ("space")。作为确认按键的反馈,我想在按下按键后转到下一个试验(转到下一个循环迭代)。我试图用 break
和 continue
在我的代码中实现这个想法,但它不起作用:
for i in range(nTrials):
# Start with fixation cross
fixation.draw()
win.flip()
core.wait(2)
# Play the video for 200 frames
for Nframes in range(200):
optic_flow_movie.draw()
fixation.draw()
win.flip()
# Get Participants responses
keys = psychopy.event.getKeys(keyList=["space"],timeStamped=clock)
if (keys[0][0] == 'space') is True:
break
else:
continue
# Take only the timestamps from the variable key and store it in the variable RTs
RTs = [sublist[1:2] for sublist in keys] # This stores only the timestamps
RTs = [item for sublist in RTs for item in sublist] # This converts from list of lists to a flat list
非常感谢您的帮助!
目前还不完全清楚你的试验结构是什么,但如果你想在动画期间监控响应,那么对 event.getKeys()
的调用需要嵌入到绘图循环中(即在 for Nframes in range(200):
).这样,您就可以在每次屏幕刷新时检查按键,因此可以实时停止动画。
目前,代码显示了整个动画,然后才检查键盘(但每次试验只检查一次)。无论那里发生什么,下一次试验都会开始,因为这是主试验循环中的最后一个代码(即 for i in range(nTrials):
.
最后,event
模块不推荐用于键盘响应。你真的应该转向更新的 Keyboard
class 以获得更好的性能:
https://www.psychopy.org/api/hardware/keyboard.html
https://discourse.psychopy.org/t/3-ways-to-get-keyboard-input-which-is-best/11184/3
在我的实验中,我进行了 10 次试验,在每次试验中,参与者必须在看到动画中的颜色变化后尽快按下一个键 ("space")。作为确认按键的反馈,我想在按下按键后转到下一个试验(转到下一个循环迭代)。我试图用 break
和 continue
在我的代码中实现这个想法,但它不起作用:
for i in range(nTrials):
# Start with fixation cross
fixation.draw()
win.flip()
core.wait(2)
# Play the video for 200 frames
for Nframes in range(200):
optic_flow_movie.draw()
fixation.draw()
win.flip()
# Get Participants responses
keys = psychopy.event.getKeys(keyList=["space"],timeStamped=clock)
if (keys[0][0] == 'space') is True:
break
else:
continue
# Take only the timestamps from the variable key and store it in the variable RTs
RTs = [sublist[1:2] for sublist in keys] # This stores only the timestamps
RTs = [item for sublist in RTs for item in sublist] # This converts from list of lists to a flat list
非常感谢您的帮助!
目前还不完全清楚你的试验结构是什么,但如果你想在动画期间监控响应,那么对 event.getKeys()
的调用需要嵌入到绘图循环中(即在 for Nframes in range(200):
).这样,您就可以在每次屏幕刷新时检查按键,因此可以实时停止动画。
目前,代码显示了整个动画,然后才检查键盘(但每次试验只检查一次)。无论那里发生什么,下一次试验都会开始,因为这是主试验循环中的最后一个代码(即 for i in range(nTrials):
.
最后,event
模块不推荐用于键盘响应。你真的应该转向更新的 Keyboard
class 以获得更好的性能:
https://www.psychopy.org/api/hardware/keyboard.html
https://discourse.psychopy.org/t/3-ways-to-get-keyboard-input-which-is-best/11184/3