游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5075|回复: 7

求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什么

[复制链接]

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2006-9-17 10:13:00 | 显示全部楼层 |阅读模式

Windows的消息映射中本来就有鼠标合键盘的消息处理机制比如:WM_KEYDOWN    WM_RBUTTONDOWN等等,而且API中还有GetAsyncKeyState函数这样的处理鼠标和键盘的API函数,为什么微软又弄出来一个DirectInput呢?


对游戏制作来说,DirectInput比Windows原来自带的消息处理机制有什么更好的地方?



恳请各位大侠赐教!

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-9-17 10:21:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

DirectInput更快,而且控制相比更接近硬件。
而WIN32 API是全虚拟键位的。

18

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2006-9-17 12:59:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

DirectInput更快,而且控制相比更接近硬件。

--------------------------------------------

可是我觉得GetAsyncKeyState等等函数也没显出慢啊!可能是我太菜鸟了吧!

4

主题

27

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2006-9-17 19:33:00 | 显示全部楼层

Re: 求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

好象 DX INPUT 可以只写一次就能 支持任何游戏输入设备的输入~这些功能好象 WIN API 没的相关的接口~~速度可能一般吧 可能是就象微软的COM 来呢~ 要速度自己写驱动~不过有现成的就用吧~ [em23]

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2006-9-18 09:40:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

其实用起来差不多~
只不过DirectInput微软作了一些优化,使你使用起来更方便
比如在某一时刻,因为某种原因游戏没有及时响应(比如卡了),你连续向游戏按了7个方向键以后游戏才开始响应,那么:
API消息队列里就存有就会存有7个方向键指令,并依次执行
而DirectInput只会执行一次。

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-9-18 17:18:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

这个是有些差别的,但是差别在哪里还一时不好说,反正大部分人都是用DirectInput,但是你若是说为什么?


答案是大部分人都在用,哈哈!

19

主题

64

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2006-9-19 15:47:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

三楼经典

8

主题

46

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2006-9-19 17:20:00 | 显示全部楼层

Re:求教!Win32 API同样能轻松处理键盘和鼠标的消息,为什

好像win32得到的窗口信息是绝对位置,,dx是相对位置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 11:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表