|
|
发表于 2006-7-14 08:14:00
|
显示全部楼层
Re:FPS游戏的鼠标操作怪题
我也正在想这个问题.
我是用 DxInput 来控制鼠标事件的.
每次读设备状态会有一个 lx, ly, lz 与 Buttons 的值.
如果 lx ,ly ,lz 都为0 那鼠标就没动.
lx ,ly ,lz 就是移动的距离,它原点在中心,向下,向右为正.
它们分别是移动的距离.
关闭如何得到鼠标在屏幕(窗口)上的坐标. 我看 DxInput 介绍的方法是定一个
Mouse_x ,Mouse_y 每次与 lx, ly 累加.
不过我试了一上,控制起来还有点难度.
后来读了两个类似 CS 的代码.发现
其中一个,是直接用 WinApi GetCursorPos 得到屏幕坐标,再用 ScreenToClient 换成窗口坐标.
第二个的方法更简陋了.在 MsgProc 中获取 WM_MOUSEMOVE 事件,来对鼠标置位的.
(它的键盘事件也是用 WM_KEYDOWN 来完成的, 不过玩了一下,第二个明显要好玩点.控制上也没遇到什么问题)
最后说一点我的看法.
如果用 DirectInput 如果想用 GetCursorPos 来得到鼠标位置,那不能以独占方式打开.
|
|