Psychtoolbox-3 中的键盘组合检测

Keyboard combination detection in Psychtoolbox-3

我希望我的实验有一个组合键作为一个指示器来引发实验的启动退出。

现在我有了这段代码,它检测到一次按键:

while(1)
     [keyIsDown,~,keyCode]=KbCheck;
     if keyIsDown
          if keyCode(SOME_KEY)
                 exitExperiment();
          end
          break;
     end
end

我希望 SOME_KEY 指的是组合键,例如 ctrl+rshift+ESC。任何其他允许引用按键组合的解决方案肯定会有所帮助。

谢谢。

您可以检查组合键,方法是检查 keyCode 逻辑数组中的 all 个适当的键代码是否为真。这是一个需要同时按下左控制键和 r 键的例子:

% setup
KbName('UnifyKeyNames');
needed_key_names = {'LeftControl', 'r'};
needed_key_codes = KbName(needed_key_names);

while(1)
     [keyIsDown,~,keyCode]=KbCheck();
     if keyIsDown
          if all(keyCode(needed_key_codes))
             break;
          end
     end
end