在实验中,参与者会在屏幕右上方看到经过时间显示。我的目标是在不同条件下操纵此显示。 详细地说,在一种情况下,经过的计时器应快1.2倍,而在另一种情况下,应仅比实际时间快0.8倍。当然,计时器仍应仅显示整数(1、2、3等),而不显示小数。有什么简单的方法可以实现呢?
我尝试将计时器与常数相乘或相乘,但这会导致很多小数。如果我要向上或向下舍入这些数字,计时器将不再精确,因为计时器的每次增加不一定等于例如。 1,2秒。
答案 0 :(得分:1)
创建两个PsychoPy文本刺激和一个PsychoPy计时器。在一个循环中,使用Clock对象中的当前时间值更新文本刺激。从0开始,这只是几秒钟的时间,因此您可以将其乘以一个常数即可获得所需的时间扩展。例如
from psychopy import visual, event, core
win = visual.Window(units='height')
normal_text = visual.TextStim(win=win, pos=(0, 0.1))
faster_text = visual.TextStim(win=win, pos=(0, -0.1))
timer = core.Clock() # starts here at 0. Can be reset to 0 if needed.
# run until a key press:
while not event.getKeys():
# update the time value:
current_time = timer.getTime()
normal_text.text = round(timer.getTime(), ndigits=1)
faster_text.text = round(timer.getTime() * 1.2, ndigits=1)
# display them on screen:
normal_text.draw()
faster_text.draw()
win.flip()
您应该看到,当一个文本刺激显示12.0
时,另一个仍在10.0
上。
关于舍入问题,请注意,如上所述,您可以告诉舍入函数舍入到特定的小数位数,但是您也应该在舍入之前进行乘法运算,否则位数确实会增加再次。