游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3107|回复: 6

怎么检测鼠标下的物体或人物?

[复制链接]

2

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2003-11-8 09:53:00 | 显示全部楼层 |阅读模式
在d3d 或 ddraw 中,怎样知道鼠标下的物体被点中的呢?
比如鼠标指在一瓶药水上,药水瓶立即变亮或闪烁起来。
你们谁知道,告诉我一下,谢谢。

182

主题

445

帖子

459

积分

中级会员

Rank: 3Rank: 3

积分
459
QQ
发表于 2003-11-8 10:35:00 | 显示全部楼层

Re:怎么检测鼠标下的物体或人物?

我认为:
跟据鼠标位置设置矩形。
判断此矩形是与
药水碰撞不就行了。

2

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2003-11-10 14:12:00 | 显示全部楼层

Re: Re:怎么检测鼠标下的物体或人物?

除了碰撞就没有其他办法吗? [em7]

21

主题

111

帖子

126

积分

注册会员

Rank: 2

积分
126
QQ
发表于 2003-11-10 14:45:00 | 显示全部楼层

Re:怎么检测鼠标下的物体或人物?

请参考DX SDK中Pick类,其中有很详细的说明。在VB SDK中还详细分析了ray pick 和viewport pick两种技术。

10

主题

47

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2003-11-10 14:56:00 | 显示全部楼层

Re:怎么检测鼠标下的物体或人物?

OPENGL下还有名字列表可以很容易查出哪个物体被点击

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2003-11-10 18:59:00 | 显示全部楼层

Re:怎么检测鼠标下的物体或人物?

3d场景的话,需要做射线碰撞。
鼠标指针应该为一条射线。

然后每个物体有个优先级别。
要不,你永远选不中房子后面的某个物体。

1

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2003-11-10 19:53:00 | 显示全部楼层

Re:怎么检测鼠标下的物体或人物?

d3d 我不太懂!,在ddraw下这应该不算是问题吧!
最简单的,就前面那位大哥说的,用矩形检测.对那些需要检测的药品或人物,
定一个矩形,再看鼠标有没有在那个矩形里.对于不规则物品,
不嫌麻烦,也可以多定义几个矩形.C代码大约可以这样写:
   
   bool  TestMouse(RECT rc)
   {
       int x,y;
       GetMousePos(x,y);//我是想得到鼠标位置,本函数无法执行.  
       if(x>rc.left&&x<rc.right&&y>rc.tom&&y<rc.bottom)
              return 1;
       else
            return 0;
   }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-14 19:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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