回答
其实,你可以实现。每个键下来和键都有它自己的事件触发,所以你确切地知道什么时候键和什么键被按下。
例如:当向下箭头的按键按下事件被触发,你开始移动右桨下来。当X键的按键事件被触发时,开始向下移动左边的桨。当X键的按键事件被触发时,您停止移动左边的按键,并且当向下箭头的按键事件被触发时,您停止移动右边的按键。 =>你可以独立控制它们。
您可以将所有这些包装在某种实用工具中,以使解决方案更加清洁。
SWT不具有压在一起的一个概念(除非你是在谈论标准修改键,如SHIFT,ALT等)。你可以做的是分别抓住向上箭头和'q'键事件。如果计时是一个问题,那么你可以比较两个时间戳(KeyEvent中有一个时间字段),并确定你的定义是什么(50毫秒?你可能想要试验)。
如果Q正在使用像修改,那么这是比较容易,因为按下Q键时,你可以设置一个标志,当向上箭头推你可以检查Q标志是否设置。这比担心时间要容易得多。当钥匙被释放时,当然不要忘记清除q标志。
rancidfishbreath的解决方案将工作。对于一个很好的例子,看到http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet25.java
我想知道为什么我的解决方案无法正常工作。 – rancidfishbreath 2010-09-08 17:55:11
谢谢您的回答! 我只是觉得我可以很快地开发出一个小型乒乓球游戏,但是我并没有发现钥匙绑定非常难以处理!主要障碍是必须以独立的方式移动两个桨(目前,按键会干扰对手的移动,反之亦然)。
- 1. 检查某个键是否被按下?
- 2. 如何检查一次是否有多个按键被按下?
- 3. Emu8086检查按键是否按下
- 4. 检查DELETE键是否被按下?
- 5. xlib XNextEvent检查键是否被按下
- 6. 检查是否按下了切换键
- 7. 同时按下两个键时检测
- 8. 当按下一个键时,多次按下不同的按键?
- 9. 检查一个按键是否被按下两次
- 10. C#检查是否有多个键被按下(全局键盘挂钩)
- 11. 检测多个同时的按键
- 12. 使用OpenGL/GLUT如何检测两个按键是否同时按下?
- 13. 检查运行功能时是否按下换档键?
- 14. 检查空格键是否被按下,并且鼠标与jQuery同时移动?
- 15. 检查按下后是否释放了一个键C#XNA
- 16. 如何检查一个键是否在Linux中被按下?
- 17. 如何检查批次中是否按下了某个键?
- 18. 如何检查是否一个类型的键盘键是按下与CTRL
- 19. 如何无休止地检查按键是否被按下?
- 20. 检测BlackBerry按键球/按键是否被按下?
- 21. 加载新页面时检查按键是否已被按下(JavaScript)
- 22. SWT:是否可以同时移动多个小部件?
- 23. 检查方向键何时被按下?
- 24. 检查是否按住键,wxpython?
- 25. ASM:检查是否没有按键
- 26. 同时按下按键
- 27. SWT CTabFolder检查CTAB是否存在
- 28. elisp如何检查是否按下了Shift键
- 29. C#:检查在控制台中是否按下了任何键
- 30. UITextField如何检查是否按下删除键
我会尝试一下,也许我会把它上传到bitbucket或什么 - 我会让你现在在这里。 – phineas 2010-09-09 19:48:40