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