我正在做一个有视觉刺激物的项目,该刺激物由许多点按特定方向在屏幕上四处移动,刺激后,用户需要按两个键之一(“ 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