用psychtoolbox獲取按鍵KbGet——使用例程改動
阿新 • • 發佈:2021-01-07
技術標籤:psychtoolboxmatlab
#用psychtoolbox獲取按鍵KbGet——使用例程改動
接著上一篇關於KbGet的程式碼詳解,我發現網上給出的使用例程對新手不是很友好,所以我寫了一個比較適合我自己除錯的版本。
%原文 http://my.oschina.net/u/1387924/blog/379421
%alsa_shui改動
close all;
clearvars;
sca;
try
KbName('UnifyKeyNames');
Screen('Preference', 'SkipSyncTests', 1);
[winPt, winRect]=Screen ('OpenWindow',1,175, [500 300 800 370]);
keyUp = KbName('UpArrow');
keyDown = KbName('DownArrow');
keyLeft = KbName('LeftArrow');
keyRight = KbName('RightArrow');
lastsecs = 0;
key = 0;
disp_txt = '';
Screen('DrawText',winPt,'play as you like,press esc to escape',0,0,0);
Screen('Flip',winPt);
while key ~ = KbName('Escape')
[secs, key] = KbGet();
if key == keyUp
disp_txt = 'up';
elseif key == keyDown
disp_txt = 'down';
elseif key == keyLeft
disp_txt = 'left';
elseif key == keyRight
disp_txt = 'right';
elseif key ~= 0
disp_txt = ['you presssed' num2str(KbName(key))];
end
Screen('DrawText',winPt,disp_txt,0,0,0);
time = secs - lastsecs;
Screen('DrawText',winPt,['the time duration is' num2str(time) 's'],0,24,0);
Screen('Flip',winPt);
lastsecs = secs;
end
Screen('CloseAll');
catch
Screen('CloseAll');
Priority(0);
psychrethrow(psychlasterror);
end