游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1750|回复: 4

FPS游戏的鼠标操作怪题

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-6-27 15:18:00 | 显示全部楼层 |阅读模式
CS里用鼠标控制方向.

不过这里有个很有意思的问题.
鼠标给电脑主机发送的信息,是 "我向左移动了1个点"
那么,FPS游戏应该可以直接利用这个信息.
但是

现在的变成里面有这样的功能语句吗?
MOUSE_MOVE得到的不是 移动量, 而是 坐标.
说明WINDOWS会把 移动量通过计算转换成坐标.
然后人们再用坐标来计算移动了多少.
这么一来,原来的"移动"->"控制",就变成了
"移动"->"移动变成坐标"->"坐标变成移动"->游戏控制

为什么要这么无聊呢? [em3]

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-6-27 15:44:00 | 显示全部楼层

Re:FPS游戏的鼠标操作怪题

你才无聊.....根本没点数学常识.数学什么时候教你“向左移动一个坐标了?”

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2006-6-29 08:46:00 | 显示全部楼层

Re:FPS游戏的鼠标操作怪题

??
听不懂2楼在说什么?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2006-7-4 18:46:00 | 显示全部楼层

Re:FPS游戏的鼠标操作怪题

为什么要把鼠标固定在某一点上才行?
就没有别的办法可以得到鼠标移动量了吗?

0

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 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 来得到鼠标位置,那不能以独占方式打开.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 23:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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