游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8017|回复: 5

请问怎样将鼠标限制在游戏窗口内?

[复制链接]

4

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2007-3-14 20:21:00 | 显示全部楼层 |阅读模式
比如:



当游戏运行的时候,禁止将鼠标移动到GAME WINDOW之外,请注意游戏不是运行在全屏模式下.

因为有一个问题,就是游戏窗口在运行的时候,需要获得当前的鼠标位置,并将其重新计算到游戏中的位置,也就是说游戏中鼠标图标的位置和实际的鼠标在屏幕上的位置并不对应,比如:



其中+代表游戏中鼠标图标的位置,M代表实际鼠标在屏幕上的坐标位置,但是当鼠标移出GAME WINDOW之后就激活了别的窗口,这时重新计算得到的鼠标图标+的位置并没有实际意义,我希望在游戏运行的时候禁止鼠标移动到GAME WINDOW之外,但可以通过按ESC键来退出游戏来恢复鼠标的正常使用.

如下图所示:



这时点击鼠标就会激活别的窗口.

10

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2007-3-15 01:53:00 | 显示全部楼层

Re:请问怎样将鼠标限制在游戏窗口内?

你可以用DIRECTX INPUT接管鼠标,绕开WINDOWS MESSAGE LOOP
在DXSDK的SAMPLE里有个项目MOUSE,就描述了你需要的功能如何实现

4

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2007-3-15 12:34:00 | 显示全部楼层

Re:请问怎样将鼠标限制在游戏窗口内?

顶下这个问题,我现在用DIRECTXINPUT获取鼠标数据,但根据鼠标偏移计算位置时,由于鼠标移出窗口,老是计算不准确,麻烦啊

4

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2007-3-15 12:51:00 | 显示全部楼层

Re:请问怎样将鼠标限制在游戏窗口内?

看上面提醒刚才试了下,用独占模式的确可以限制鼠标在窗口内
DISCL_FOREGROUND | DISCL_EXCLUSIVE
楼上说的是不是这个?

0

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2007-3-19 00:14:00 | 显示全部楼层

Re: 请问怎样将鼠标限制在游戏窗口内?

用API?
ClipMouse

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2007-3-19 08:26:00 | 显示全部楼层

Re:请问怎样将鼠标限制在游戏窗口内?

位置转换问题,屏幕坐标转换为地图坐标。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-19 13:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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