我想用java和swt开发一个小游戏。出于这个原因,我必须对KeyEvents做出反应。例如,我如何检查向上箭头键和'q‘是否按在一起?
提前感谢
菲尼亚斯
发布于 2010-09-10 01:28:23
实际上,您可以实现这一点。每个向下键和向上键都有它自己的事件被触发,所以你可以准确地知道什么时候什么键被按下,以及什么键在任何时候被按下。
示例:当触发向下箭头的key down事件时,您开始向下移动右划板。当X键的key down事件被激发时,您开始向下移动左侧的划桨。当X键的key up事件被激发时,您将停止移动左桨,而当向下箭头的key up事件被激发时,您将停止移动右桨。=>,你可以独立地控制它们。
您可以将所有这些都封装在某种实用程序中,从而使解决方案变得更干净。
发布于 2010-09-09 01:34:54
SWT没有按在一起的概念(除非您正在谈论标准的修改键,如shift、alt等)。你能做的就是分别捕捉向上箭头和'q‘键事件。如果计时有问题,那么您可以比较两个时间戳(在KeyEvent中有一个时间字段),并确定您对一起的定义是什么(50毫秒?您可能想要进行实验)。
如果Q被用作修饰符,那么这就更容易了,因为你可以在按下Q时设置一个标志,当按下向上箭头时,你可以检查Q标志是否被设置。这将比担心时间问题容易得多。当然,不要忘记在释放键时清除Q标志。
发布于 2010-09-09 01:50:36
酸度鱼呼吸的解决方案将会起作用。有关一个很好的示例,请参阅http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet25.java
https://stackoverflow.com/questions/3670106
复制相似问题