Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SWT:检查是否同时按下多个键_Java_Swt - Fatal编程技术网

Java SWT:检查是否同时按下多个键

Java SWT:检查是否同时按下多个键,java,swt,Java,Swt,我想用java和swt开发一个小游戏。 因此,我必须对关键事件做出反应。 如何检查是否同时按下了向上箭头键和“q” 提前感谢 phineasSWT没有一起按下的概念(除非您谈论的是标准修改键,如shift、alt等)。您可以分别捕捉向上箭头和“q”键事件。如果计时是一个问题,那么您可以比较两个时间戳(KeyEvent中有一个时间字段),并确定您一起定义的时间(50毫秒?您可能需要进行实验) 如果q像修改器一样使用,那么这会更容易,因为按下q时可以设置标志,按下向上箭头时可以检查是否设置了q标志。

我想用java和swt开发一个小游戏。 因此,我必须对关键事件做出反应。 如何检查是否同时按下了向上箭头键和“q”

提前感谢

phineas

SWT没有一起按下的概念(除非您谈论的是标准修改键,如shift、alt等)。您可以分别捕捉向上箭头和“q”键事件。如果计时是一个问题,那么您可以比较两个时间戳(KeyEvent中有一个时间字段),并确定您一起定义的时间(50毫秒?您可能需要进行实验)


如果q像修改器一样使用,那么这会更容易,因为按下q时可以设置标志,按下向上箭头时可以检查是否设置了q标志。这比担心时机要容易得多。当然,释放钥匙时不要忘记清除q标志。

rancidfishbreath的解决方案会起作用。有关一个极好的示例,请参见

谢谢您的回答!
我只是想我可以开发一个小乒乓球游戏相当快,但我不知道的关键绑定是如此难以处理!主要的障碍是两个桨必须以独立的方式移动(目前按键会干扰对手的移动,反之亦然)。

实际上,你可以实现这一点。每个向下键和向上键都会触发自己的事件,因此您可以准确地知道何时按下了哪些键以及在任何时刻按下了哪些键

示例:当向下箭头的键向下事件被触发时,您开始向下移动右拨杆。当X键的“向下键”事件触发时,您开始向下移动左拨杆。当X键的向上键事件触发时,停止移动左拨杆,当向下箭头的向上键事件触发时,停止移动右拨杆。=>您可以独立地控制它们


您可以将所有这些都封装在某种实用程序中,以使解决方案更干净。

我会尝试一下,也许我会将其上载到bitbucket或其他东西—我现在就让您来这里。