我想检测用户在5秒内点击空格键的次数
有什么好方法可以解决这个问题吗? 感谢
答案 0 :(得分:1)
从键盘轻松读取用户输入的一种方法是创建一个新图并指定一个KeyPressFcn
回调函数,如果按下任何键,它将自动执行。
让我们开始创建一个新的数字。因为我们不需要图形来显示任何东西,所以让它尽可能小(即1乘1像素)并将其放在显示屏的下角:
f = figure('Position',[0,0,1,1]);
现在我们将图形的UserData
属性设置为零 -
set(f,'UserData',0);
现在让我们看看当按下一个键时该怎么做:我们可以创建一个小的回调函数来检查按下的按钮是否是一个空格,如果是这样的话,增加UserData
计数器。我们将该函数称为isspace
:
function isspace(hObject,callbackData)
if get(hObject,'CurrentCharacter') == ' '
set(hObject,'UserData',get(hObject,'UserData')+1);
end
end
现在只需设置图形,将此功能用作KeyPressFcn
set(f,'KeyPressFcn',@isspace);
这已经计算了按下空格的次数。计数器的当前值由
读取get(f,'UserData');
现在我们需要时间测量。这可以使用timer
来完成。我们将其配置为在5秒后关闭,然后在基础工作区中确定新值。为此,我们需要一个回调函数timerCallback.m
function timerCallback(hObj,eventData)
assignin('base','nSpace',get(gcf,'UserData'));
delete(gcf);
stop(hObj);
delete(hObj);
end
t = timer('StartDelay',5,'TimerFcn',@timerCallback);
start(t);
就是这样:首先创建图形,创建计时器,5秒钟后,您可以在工作区中的变量nSpace
中获得按键次数,窗口将关闭。