Как перейти к новой процедуре в PsychoPy (JS онлайн-версия) с помощью нескольких нажатий клавиш - PullRequest
0 голосов
/ 08 января 2020

У меня есть задание PsychoPy, где участники должны сделать выбор между двумя полями. Одна коробка «открывается» нажатием правой клавиши со стрелкой три раза. Другой «открывается» нажатием левой клавиши со стрелкой два раза. Под словом «открывается» я подразумеваю, что задача переходит к следующей рутине. Я успешно закодировал это, используя Python, но чтобы запустить его онлайн, мне нужно использовать JavaScript. Ничто из того, что я пробовал, не сработало. Вот код Python:

if key_resp_14.keys == ['left', 'left']:
    continueRoutine = False
elif key_resp_14.keys == ['right', 'right', 'right']:
    continueRoutine = False
elif key_resp_14.keys == ['left', 'right']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])
elif key_resp_14.keys == ['right', 'right', 'left']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])
elif key_resp_14.keys == ['right', 'left']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])

Я пытался использовать практически такой же код в JS:

if (key_resp_14.keys === ["right","right","right"]) {
    continueRoutine = false;
}

if (key_resp_14.keys === ["left","left"]) {
    continueRoutine = false;
}

et c.

Я пробовал разные версии приведенного выше кода без успеха. Я также попытался создать переменную, которая является вектором, и вставить информацию из key_resp_14.keys в этот вектор. Когда я это делаю, я получаю каждое нажатие клавиши с самого начала задачи (key_resp_1.keys на всем протяжении key_resp_14.keys), а не просто нажатие клавиши от key_resp_14.keys. Любая помощь или предложения с благодарностью.

1 Ответ

0 голосов
/ 04 марта 2020

Первое, на что следует обратить внимание, - это то, что в новейшей версии PsychoPY (2020.1) в компоновщике есть функция автоматического перевода кода Python в код JS, поэтому, если вы используете компоновщик, пытающийся установить это обновление, и он может работать для вас.

Более точно к вашей точке Я не думаю, что вам нужно ===, просто == должно работать в JS. Кроме того (я не эксперт по Psych JS), но мне интересно, заканчиваете ли вы подпрограммы способом, который не работает с PsychoPy. Посмотрите эту ветку на дискурсе, где обсуждается, как заканчивать циклы в обновленной версии PsychoPy. https://discourse.psychopy.org/t/loop-finished-true-no-longer-working/11190

...