游戏开发论坛

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

如何实现3D即时战略里的选取以及拉框?

[复制链接]

11

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2006-3-7 17:56:00 | 显示全部楼层 |阅读模式
如题。如何判断用户点选或框选了哪个/哪些单位?
我想不通如何用射线选取技术来处理框选,我的想法是把摄像机中拍摄到的物体的空间坐标转换为屏幕坐标,然后再根据鼠标的屏幕坐标来判断,但这样一来不仅还要知道物体在屏幕上的储存,而且坐标转换过程我也难以实现。望指点迷津。

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2006-3-8 12:10:00 | 显示全部楼层

Re:如何实现3D即时战略里的选取以及拉框?

框选可以转化为视锥裁剪,可以看看视锥是怎样算出来的。然后把框选的矩形对应视锥计算时的 (-1.0,-1.0),(-1.0,1.0)(1.0,-1.0)(1.0,1.0)

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-3-8 17:18:00 | 显示全部楼层

Re:如何实现3D即时战略里的选取以及拉框?

你的问题是在坐标转换上吗?

先算出camera在world中的abs坐标(用取camera中心点的算法,不用细说了吧)~接下来在abs的基础上计算绝对矩形宽~那种计算视锥太高深~我的方法很简单,直接是camera正对的地面距离到绝对矩形的转换,不需要太复杂,这样可以直接转换~~~将宽度内的obj整理成一个类似rect list数组就可以了~鼠标框完以后,产生rectlist,然后过滤这个rect list~

关键处在这里,在world中,应该有一个move trigger到map pane的功能~这个功能用来管理
obj move~这里面有很多数据结构的东西~

;)
你听明白了吗~

11

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
 楼主| 发表于 2006-3-8 18:21:00 | 显示全部楼层

Re:如何实现3D即时战略里的选取以及拉框?

- -

没明白……

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-3-9 13:12:00 | 显示全部楼层

Re: 如何实现3D即时战略里的选取以及拉框?

先计算camera中的object list~然后从里面过滤出框内obj


如果camera有倾斜度数,就把rect list换成一个顶点对象链表,用点坐标算

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-3-9 13:14:00 | 显示全部楼层

Re: Re: 如何实现3D即时战略里的选取以及拉框?

obj全用绝对矩形~明白吗~
sf_200639131417.jpg

19

主题

202

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
发表于 2006-3-10 14:26:00 | 显示全部楼层

Re:如何实现3D即时战略里的选取以及拉框?

没有研究过现有的游戏是怎么实现的。

要是我做的话,不会和显示扯上关系,这个选取基本上就是地图层的数据组织,
鼠标获取地图区域,然后查询那块区域中的已方对象。
这样应该就差不多了吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 21:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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