перейти к следующему испытанию после нажатия клавиши - PullRequest
0 голосов
/ 25 мая 2020

В моем эксперименте у меня есть 10 попыток, и в каждом испытании участник должен нажать клавишу («пробел») как можно скорее, увидев изменение цвета в анимации. В качестве обратной связи, подтверждающей нажатие клавиши, я хотел бы перейти к следующему испытанию (перейти к следующей итерации l oop) после нажатия клавиши. Я пытался реализовать эту идею в своем коде с помощью break и continue, но это не сработало:

for i in range(nTrials):

    # Start with fixation cross 
    fixation.draw()
    win.flip()
    core.wait(2)

    # Play the video for 200 frames 
    for Nframes in range(200):
        optic_flow_movie.draw()
        fixation.draw()
        win.flip()

    # Get Participants responses
    keys = psychopy.event.getKeys(keyList=["space"],timeStamped=clock)

    if (keys[0][0] == 'space') is True:
        break
    else:
        continue

# Take only the timestamps from the variable key and store it in the variable RTs  
RTs = [sublist[1:2] for sublist in keys]                     # This stores only the timestamps
RTs = [item for sublist in RTs for item in sublist]          # This converts from list of lists to a flat list

Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 26 мая 2020

Не совсем понятно, какова структура вашей пробной версии, но если вы хотите отслеживать ответы во время анимации, тогда вызов event.getKeys() должен быть встроен в чертеж l oop (т.е. в for Nframes in range(200): ). Таким образом, вы проверяете нажатие клавиши при каждом обновлении экрана sh, поэтому анимацию можно остановить в реальном времени.

На данный момент код показывает всю анимацию и только затем проверяет клавиатуру (но только один раз за испытание). Независимо от того, что там произойдет, начнется следующая пробная версия, поскольку это последний код в основной пробной версии l oop (т.е. for i in range(nTrials):.

Наконец, модуль event устарел для ответов с клавиатуры. . Вам действительно стоит перейти на более новый класс Keyboard для гораздо большей производительности:

https://www.psychopy.org/api/hardware/keyboard.html

https://discourse.psychopy.org/t/3-ways-to-get-keyboard-input-which-is-best/11184/3

...