Я настраиваю эксперимент по психопии, в котором стимул отображается на экране в течение установленного периода времени (скажем, 0,5 с), после чего пустой экран отображается с фиксацией. Я использую event.waitKeys () для ввода с клавиатуры.
Я написал следующий код.
for i in range (1, 21):
answer = cf.Stimulus() #This is a function for generating the stimulus
img = visual.ImageStim(
win=win,
image="temp.jpg",
units="pix"
)
img.draw() #This is the first screen
fixation.draw()
win.flip()
core.wait(0.5)
fixation.draw() #This is the second screen
win.flip()
keysarray = event.waitKeys()
os.remove('temp.jpg')
Проблема, с которой я здесь сталкиваюсь, заключается в том, что, если ввод с клавиатуры был получен до того, как время ожидания 0,5 заканчивается на первом экране, events.waitKeys () не регистрирует эту запись ключа и все еще ждет второй экран для ввода с клавиатуры. Программа движется вперед только в том случае, если для второго экрана получена ключевая запись.
Вместо этого я хочу, чтобы программа переходила к следующему стимулу всякий раз, когда ввод с клавиатуры вводится между началом экрана 1 и концом экрана 2. То есть, если ввод с клавиатуры принимается на самом экране 1 (до конец 0,5 с), я хочу, чтобы вход был зарегистрирован, и программа перешла к следующему стимулу (либо переходя на экран 2 в течение очень короткого промежутка времени, либо пропуская экран 2 все вместе). Кажется, я не могу понять, как этого достичь.