【问题标题】:Psychopy: Key response lagging, causing problems within scriptPsychopy:键响应滞后,导致脚本出现问题
【发布时间】:2015-08-26 21:15:08
【问题描述】:

我有一个实验的组成部分,要求参与者在两周内立即获得 10 分或获得更大的积分数量之间做出选择(积分稍后会转换为美元金额,以激励“以后更大”的选择)。稍后提供的金额根据先前的选择而有所不同。参与者将获得关于他/她在下一个例程中刚刚做出的选择的反馈。为了进行设置,我在 builder 的代码组件中生成了这个:

if key_resp_4.keys == 'left':
    feedback = 'You chose 10 points immediately'
    TotalNow = TotalNow + 10
    add = (amount - 10)/2 
    amount = add + amount
elif key_resp_4.keys == 'right':
    feedback = 'You chose more points in two weeks'
    TotalLater = TotalLater + amount
    amount = (amount + 10)/2 
elif key_resp_4.keys in ['', [], None]:
    feedback = 'You did not make a choice. No reward given.'
    amount = amount

“数量”变量生成一个数值,该数值根据左或右响应进行更新。 “TotalNow”和“TotalLater”跟踪每个条件获得的总积分,并显示在下一个屏幕中。这些变量工作得很好。

我的问题在于反馈变量。我已经多次运行脚本以更好地了解正在发生的事情。对于大多数试验(尽管不是全部)——无论我是否按下按键——反馈屏幕都会打印指定为无响应的消息:“你没有做出选择......”这是奇怪的部分,虽然。在反馈屏幕上,“TotalNow”/“TotalLater”变量显示点值,表明我做出了关键响应,即使“反馈”文本变量报告我没有做出响应。此外,下一个试验正确地显示了更新后的“数量”变量。

因此,关键响应与下一个例程中“反馈”变量显示的结果之间似乎存在一些脱节。我怀疑关键响应可能滞后。我怀疑这是因为我发现我能够在一次试验中做出两个关键反应(正如下一个例程中显示的总分中出现的额外分数所证明的那样)。我已将键响应组件设置为强制例程结束,仅存储第一个键,并丢弃任何先前的响应。但是,即使使用这些设置,也可以做出两个响应。

有人知道为什么会发生这些事件吗?我自己对此感到困惑。非常感谢任何帮助。

-本

【问题讨论】:

  • 有几种可能的解释。代码组件是否在 key_resp_4 之后的例程中?它是在例程的顶部还是在显示feedbackamount 的文本之前的例程中?如果对其中任何一个不满意,请尝试这样做。
  • 代码组件设置为在收集 key_resp_4 的例程结束时启动。我将代码组件移动到下一个例程的开头,该例程显示反馈变量。金额只是为了下一个循环而更新。在此更改之后,问题仍以类似的方式存在。键盘组件似乎启动缓慢。有问题的例程持续一秒钟,并且键盘元素很少在仅按一次后(按预期)工作,除非在接近一秒时间框架的末尾按下。
  • 如果你觉得有帮助,我可以添加 PsychoPy 编译的关于在例程中启动 key_resp_4 的代码。

标签: if-statement lag psychopy


【解决方案1】:

这是一个相当不令人满意的答案,但我首先按照 Jonas 的建议解决了这个问题,然后通过实验编程删除了一个已经过时的无关循环。这并没有具体回答为什么关键响应滞后的问题,但它现在似乎运作良好。

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2017-02-13
    相关资源
    最近更新 更多