Я делаю проект, в котором у меня есть визуальный стимул, состоящий из множества точек, движущихся по экрану в определенном направлении, и после стимула пользователю нужно нажать одну из двух клавиш (либо «q», либо «w» ).
Я хочу, чтобы пользователь был вынужден нажимать клавишу, то есть: стимул (точки, движущиеся в определенном направлении) воспроизводится в течение фиксированного времени, затем он останавливается (но точки продолжают двигаться в случайных направлениях), и он просто остается таким пока пользователь не нажмет «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