查看: 2408|回复: 11

关于拖拽器拖拽过程中,进行碰撞检测

[复制链接]

该用户从未签到

发表于 2010-4-14 10:43:51 | 显示全部楼层 |阅读模式
我的想法是,在root下加载一个lz.osg地形,然后加载一个坦克模型,这时候用TabBoxDragger拖拽这个模型,就是当坦克模型往地底下拖动的时候,这个时候应该让它拖不动,现在我能计算出碰撞的那个点,也就是坦克应该在地面上的位置,然后,我就是不知道如何把这个位置的值传入到拖拽器(或者其他的,只要是能实现在拖拽的时候如果将要进入地下,这时候就不让进入)。各位牛人给一些方法上的指点吧。。。至于那个osgManipulator我已经看过了,但是木有发现如何处理的,而且好像也没有涉及到我这方面的问题。。。
先谢谢啦。。。
1.jpg

该用户从未签到

 楼主| 发表于 2010-4-14 10:47:17 | 显示全部楼层
附件的那个图片,如果继续往下拖动,那么坦克就进入到地里面去了。。。

该用户从未签到

发表于 2010-4-14 11:07:03 | 显示全部楼层
模型的中心点放在底盘上,然后获取与地形的碰撞点,加个误差控制模型的位移

该用户从未签到

 楼主| 发表于 2010-4-14 11:28:17 | 显示全部楼层
3# tianxiao888 恩,这个可以做到,我现在的问题是,在拖拽的过程中啊,过我我继续拖拽的话,那么坦克就下去了,我现在想知道的是,我现在获得了这个匹配的高度值之后,我需要怎么把这个值设置呢?然后去保证不能往下继续拖拽这个坦克模型了。。。谢谢!

该用户从未签到

发表于 2010-4-14 12:37:39 | 显示全部楼层
当您发现不应当继续拖曳模型时,设置dragger->setHandleEvents(false)

该用户从未签到

 楼主| 发表于 2010-4-14 13:22:46 | 显示全部楼层
5# array 我这时只是不能往下拖了,但是其他方向还得可以响应啊。。

该用户从未签到

发表于 2010-4-14 16:29:55 | 显示全部楼层
那你给那个dragger写个判断控制,把检测和高度匹配放到z方向的拖拽更新那块~~

该用户从未签到

发表于 2010-4-14 17:11:12 | 显示全部楼层
正如楼上所说,此时您需要自己派生一个新的Dragger,并在其中编写自定义的实现代码。OSG的魅力正在于其强大的可扩展性

该用户从未签到

 楼主| 发表于 2010-4-14 21:43:45 | 显示全部楼层
8# array 恩,3Q,呵呵,看看那些源码,然后试一试。。还有今天把osgBullet编译了,看了那个例子,太酷了。。。OSG让我怎么能不爱你。。哇咔咔。。

该用户从未签到

发表于 2011-3-23 01:19:40 | 显示全部楼层
回复 9# Gooogle


    请问你的osg编译时用的什么办法,我编译了好几次都没有成功不知道问题出在了那里

该用户从未签到

发表于 2011-3-23 11:38:53 | 显示全部楼层
osg编译的文档很多的,按照步骤应该可以的

该用户从未签到

发表于 2011-3-23 14:32:38 | 显示全部楼层
使用碰撞检测库 应该是容易实现的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表