首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

键盘几个键同时按住?该怎么处理

2012-02-19 
键盘几个键同时按住??我想实现如下的效果:类似 飞机游戏,按住 发射子弹 键,子弹就连续发射,同时按上下左右

键盘几个键同时按住??
我想实现如下的效果:

类似 飞机游戏,按住 发射子弹 键,子弹就连续发射,同时按上下左右键还能让飞机上下左右移动。我试了下在edit里安住一个键(键A)时按下另一个键(键B),则 键A 的效果就没了,不知 飞机 游戏是如何做到的?

或者 按住 发射子弹键,同时斜线飞行,再按下原子弹键,则有4个键同时作用,应该如何处理??

[解决办法]
一个例子, 当同时按光标向上移动键、光标向左移动键和A时,窗体标题更新为当前时间。

Delphi(Pascal) code
procedure TForm1.FormCreate(Sender: TObject);begin  Self.KeyPreview := True;end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);var  KS: TKeyboardState;begin  GetKeyboardState(KS);  if ((KS[vk_up] = 128) or (KS[vk_up] = 129)) and     ((KS[vk_left] = 128) or (KS[vk_left] = 129)) and     ((KS[ord('A')] = 128) or (KS[ord('A')] = 129)) then    Self.Caption := FormatDateTime('yyyy-MM-dd hh:nn:ss', now);end;
[解决办法]
应该是接收消息,在消息处理那里执行不同线程
[解决办法]
探讨

前不久D版里有人发布过一个战斗机游戏的源码,楼主可以参考一下

[解决办法]
接收消息,读取键盘消息,再根据消息执行线程,完全是行得通的.

热点排行