注册 登录
编程论坛 Delphi论坛

新人求助,关于键盘管理的问题

hcx0125 发布于 2011-04-09 19:39, 505 次点击
大家好!
我跟同学在做一个lazarus(跟delphi差不多的)的projet,
做弹球游戏,两人对战。

一个人用w,s控制上下,另一个人用i,k控制
form那里用了一个stringgrid
用的event是 on key press

但是问题来了,当第一个人‘按住’W键不松控制他的板子一直往上移动的时候,当另一个人按下了键盘的另一个键,那么前一个人的板子就不会继续移动
想了一下,这是键盘设置的问题
比如说大家先按下A键不松,然后再按下K键不松,那么就会出现“aaaaaaaaaaaaaaa(这里按下了K键)kkkkkkkkkkkkkk”

但是到时候游戏做好了之后,不可能同一时间内只有一个人按键另一个人不动。。
所以现在就卡住了,不知道怎么办。。

问题有点长,多谢大家的帮助啦呵呵!
2 回复
#2
hcx01252011-04-09 19:40
额还有个关系不太大的小问题。。
当我用OnKeyDown事件的时候,key的type是 word
不知道怎么word是怎么定义的。。
比如说假如我用OnKeyPress,那么我直接定义key:=‘S’就好了,
但是用的是OnKeyDown就不知道怎么定义了。。

谢谢啦!!
#3
hcx01252011-04-15 22:56
搞定了
加了几个boolean,比如说按下了w就让这个boolean等于true,然后只要这个boolean=true就让板子一直往上动,然后加一个onkeyup,一松开w就让boolean等于false就好了
1