python – PsychoPy Builder:如何更新每个按键的屏幕?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – PsychoPy Builder:如何更新每个按键的屏幕?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2249字,纯文字阅读大概需要4分钟。
内容图文
我希望每次主题按下一个键时显示一个不同的文本对象,具体取决于刚刚按下了哪个键,我希望只有一个特定的键才能进入下一个试验.
例如,屏幕应显示“5”的文本,然后如果主题按下向下键,它将变为“4”,如果按下向上键,则变为“6”等,但如果按下输入,我们将转到下一张幻灯片.
怎么去这个?
到目前为止我尝试过的
我一直在使用构建器视图来创建一个通用框架,然后一直在乱码代码本身.我试着像这样插入一个循环:
inloop=True
while inloop:
print "in the loop"
if event.getKeys('return'):
inloop = False
continueRoutine=False
elif event.getKeys('left'):
print "left key pressed"
elif event.getKeys('right'):
print "right key pressed"
elif event.getKeys('escape'):
core.quit()
如果我把它放在我想要这种行为的例程的ContinueRoutine循环中,我无法得到“在循环中”或任何其他打印语句来打印,所以它似乎没有进入循环.我也试过把它放在其他几个地方,我也有类似的困难.你会在哪里插入这样一个循环,这似乎是一个解决这个问题的好方法?
解决方法:
作为一般建议,从长远来看,您可以更轻松地将其添加到构建器代码组件中.从构建器到编码器是一条单行道 – 代码中的编辑无法返回构建器.或者你可以使用完整的代码,在这种情况下建议从头开始编写.
你的实施
关于您当前代码不起作用的原因的一些评论:
>每个event.getKeys()将默认删除响应后的响应.因此,像你一样在每个帧中多次调用它将使后续调用为空.
> event.getKeys()将LIST作为参数,你给它一个字符串.如果你想听一个单词,给它[‘return’]而不是’return’.
并且作为改进时间(和概念清晰度)的建议:如果在等待按键时视觉是静态的,我只会使用waitKeys,因此只有按键才能发生.这也会增加相对于getKeys()的准确性,当使用win.flip()放入循环时,它会锁定到帧.
解
因此,您可以在代码组件中执行以下操作,该组件应位于文本下方:
while True: # Yes, continue listening forever...
resp_key = event.waitKeys(keyList=['left','right','up','down','return'])[0] # pick first and only response.
# Set different texts dependent on received response
if resp_key == 'left':
yourTextStimulus.text = '5'
elif resp_key == 'right':
yourTextStimulus.text = '7'
elif resp_key == 'up':
yourTextStimulus.text = '2'
# .. or break out of the loop if return was pressed
elif resp_key == 'return':
break # oh, do NOT continue forever... we're finished on return :-)
# Actually show text if loop was not ended
yourTextStimulus.draw()
win.flip()
将“yourTextStimulus”重命名为文本名称.当然,如果需要,你可以将它调整为更多/不同的键,并使实际的字符串(当前为’5′,’7′,’2′)依赖于试验.
内容总结
以上是互联网集市为您收集整理的python – PsychoPy Builder:如何更新每个按键的屏幕?全部内容,希望文章能够帮你解决python – PsychoPy Builder:如何更新每个按键的屏幕?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。