Я делаю проект, в котором у меня есть визуальный стимул, который состоит из множества точек, движущихся по экрану в определенном направлении c, и после стимула пользователь должен нажать одну из двух клавиш (либо q 'или' w ').
Я хочу, чтобы пользователь был вынужден нажать клавишу, то есть: стимул (точки, движущиеся в заданном c направлении) воспроизводятся в течение фиксированной продолжительности, затем он останавливается (но точки продолжают двигаться в случайных направлениях), и это просто так до тех пор, пока пользователь не нажмет 'q' или 'w'. После того, как пользователь наконец нажимает клавишу, появляется слуховая обратная связь (правильный или неправильный ответ), и стимул воспроизводится снова. Это повторяется до конца испытаний.
Мой вопрос: как я могу заставить пользователя нажать клавишу после стимула, не останавливаясь? Потому что, если я сделаю паузу, все точки «замирают», вместо того, чтобы двигаться в разных / случайных направлениях в ожидании ответа. Итак, как я могу ждать «вечно / бесконечно», пока пользователь не нажмет клавишу («q» или «w»)?
Мой код:
% present dots in random directions:
for frame = 1:ceil(maxRT*frameRate) %maxRT is 2 seconds
%calls function related to the drawing of the dots
Screen('DrawingFinished', window1.h);
[flip.waitRT.VBL(block, trial, frame), ...
flip.waitRT.StimOns(block, trial, frame), ...
flip.waitRT.FlipTS(block, trial, frame), ...
flip.waitRT.Missed(block, trial, frame), ...
flip.waitRT.beampos(block, trial, frame)] = Screen('Flip', window1.h, TimingCnt);
TimingCnt = flip.waitRT.VBL(block, trial, frameNum) + window1.frameDur - window1.slack;
[keyIsDown, secs, keyCode] = KbCheck();
keypressed = KbName(keyCode);
if ischar(keypressed) && ~isempty(keypressed) && keyIsDown
%checks which key was pressed, compares pressed key with correct key to check if it's correct or wrong, calculates RT, plays auditory feedback
end
end