PsychoPy编码器:问题以按键响应结束循环

o

我尝试进行一项实验,参与者可以连续地(逐帧)更改刺激大小(即,按下/按住UP键增加大小,DOWN键减小大小)并使用ENTER-确认键。我发现从pyglet使用Key.StateHandle()会有所帮助,并且基本上我的代码可以按预期工作。但是,我发现跳过了一些“试验”。

这是我的代码:

from psychopy import visual, core, event
from pyglet.window import key 
win = visual.Window([1280,1024], fullscr=False, units='deg',monitor='testMonitor',winType='pyglet')
keyState=key.KeyStateHandler() 
win.winHandle.push_handlers(keyState) 

myCircle = visual.Circle(win,edges=128,radius=2.5,lineColor='black',fillColor='black',units='deg') 
myCircle2 = visual.Circle(win,edges=128,radius=2.5,lineColor='black',fillColor='black',units='deg') 
response=0

for i in range(5):
    sizeIni=1.0
    myCircle2.setRadius(sizeIni)
    myCircle2.setPos([0.0, -10.0])
    event.clearEvents()
    response=0
    while response <> 1: 
        response=None
        if keyState[key.UP]:
            sizeIni=sizeIni+0.03333
            if sizeIni>=10.0:
                sizeIni=10.0
            myCircle2.setRadius(sizeIni)
            response=0
        elif keyState[key.DOWN]:
            sizeIni=sizeIni-0.03333
            if sizeIni<=1.0:
                sizeIni=1.0
            myCircle2.setRadius(sizeIni)
            response=0            
        elif keyState[key.ENTER]:
            size=sizeIni
            print size
            response=1
        elif keyState[key.ESCAPE]:
            core.quit()        
        size=sizeIni
        myCircle.draw()
        myCircle2.draw()
        win.flip()

此例行程序应进行5次试验,但会跳过一些试验。这是原型输出:

1.36663
1.0 # this trial is skipped 
1.6666
2.23321
1.0 # this trial is skipped 

跳过试验的顺序也是可变的。我在两台不同的计算机(Ubuntu / Windows 7)上收到了问题。我的代码中是否有任何明显的错误,或者是否有任何建议以其他方式对实验进行编码?

迈克尔·麦克阿斯基尔

我认为问题在于您正在检查是否按下了回车键,但不是在再次检测到它之前是否将其释放。即,此代码在每个屏幕刷新周期中检查一次按键状态。受试者可能会响应一个试验而按Enter键,但是当图像重设为其原始大小并开始下一个试验时,该键仍处于按下状态。

您应该跟踪两次连续的按键检测是否是由于Enter键引起的,而没有中间的时间间隔,即没有按键被按下,或者没有检测到另一个按键。我想这对于其他两个键不是必需的,因为您想连续响应,而回车键应该被视为离散事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

建立快速的PNG编码器问题

来自分类Dev

Scala Spark +编码器问题

来自分类Dev

LSTM自动编码器问题

来自分类Dev

NaN值的序数编码器问题

来自分类Dev

PsychoPy编码器:根据帧定义图像持续时间

来自分类Dev

地理编码器:如果响应超出查询限制

来自分类Dev

如何使用Elmish Debugger解决编码器问题?

来自分类Dev

使用pygame结束按键的循环

来自分类Dev

使用pygame结束按键的循环

来自分类Dev

ExpressJS HTML编码器

来自分类Dev

未知的编码器“ libfaac”

来自分类Dev

HTML标签编码器

来自分类Dev

优化算术编码器

来自分类Dev

获取编码器数据

来自分类Dev

标签编码器编码缺失值

来自分类Dev

WCF。在自定义编码器中绑定请求和响应

来自分类Dev

WCF。在自定义编码器中绑定请求和响应

来自分类Dev

在使用地理编码器时添加多个标记以响应谷歌地图

来自分类Dev

字幕编辑器中的编码器出现问题

来自分类Dev

(Noob编码器)基本计算器问题+代码建议

来自分类Dev

字幕编辑器中的编码器出现问题

来自分类Dev

使用卷积自动编码器在照片上添加微笑的问题

来自分类Dev

在QueryString中发送俄语字符时出现JSP编码器问题

来自分类Dev

在Android 4.1 / 4.2设备中将MediaCodec.getOutputFormat()用于编码器的问题

来自分类Dev

FFmpeg:h264_qsv编码器和crf问题

来自分类Dev

这个编码器字节码有什么问题(简单的挑战2)?

来自分类Dev

Pandas 问题:标签编码器和拆分列以提供带有标签的数据集

来自分类Dev

结束while循环的问题

来自分类Dev

字符串的编码器-Python