等待用户按下键

问题描述 投票:0回答:1

我正在做一个有视觉刺激物的项目,该刺激物由许多点按特定方向在屏幕上四处移动,刺激后,用户需要按两个键之一(“ 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
matlab key wait psychtoolbox
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.