游戏开发论坛

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

多个球体的碰撞检测和躲避问题

[复制链接]

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-10-10 21:19:00 | 显示全部楼层 |阅读模式
不知道大家看过水族馆的屏保没有,一直搞不明白他里面的鱼是如何进行碰撞检测和躲避处理的?
我是这么想的:
一般水族馆里会有很多条鱼,现假设有3条(编号依次为1 2 3)
鱼鱼之间的碰撞检测可以采用球球检测的方法(简单实用),即为每条鱼建立一个球体包围盒,只要两球的球心间距小于等于两球半径之和即可认为两条鱼发生了碰撞。
现在考虑较糟糕的情况,即某一时刻3条鱼两两碰撞
程序中每一帧应该检测每两条鱼的碰撞情况,如下:
1,2检测后发现碰撞,为2选择一个新的运动方向,使1和2摆脱碰撞
1,3检测后发现碰撞,为3选择一个新的运动方向,使1和3摆脱碰撞
2,3检测后发现碰撞,为3选择一个新的运动方向,使2和3摆脱碰撞
这样问题就来了,因为前面1,3检测后已经改变了3的方法,此时1,3已经脱离碰撞,可是2,3检测后又改变了3的方向,这时3有可能又和1继续发生碰撞
想问问大家应该怎么处理这个问题呢?是不是我开始的想法就不对啊?水族馆屏保中的碰撞检测和躲避是如何处理的呢?


35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-10-10 22:44:00 | 显示全部楼层

Re:多个球体的碰撞检测和躲避问题

你这个是属于智能方面的范畴了~不属于严格的碰撞范畴~
可以设置鱼之间的间距,鱼需要有这样的功能,知道周围其他鱼的位置(也可以用一个管理程序或者AI来做这个)

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
 楼主| 发表于 2006-10-11 08:37:00 | 显示全部楼层

Re:多个球体的碰撞检测和躲避问题

鱼鱼之间的间距很容易获得,然后怎么做呢
能不能说得详细一些,谢谢~

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-10-11 09:49:00 | 显示全部楼层

Re:多个球体的碰撞检测和躲避问题

www.red3d.com/cwr/steer
http://opensteer.sourceforge.net/

65

主题

518

帖子

521

积分

高级会员

Rank: 4

积分
521
发表于 2006-10-11 09:50:00 | 显示全部楼层

Re:多个球体的碰撞检测和躲避问题

这个问题我也碰到了,十分头痛。关注中!

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
 楼主| 发表于 2006-10-11 16:44:00 | 显示全部楼层

Re:多个球体的碰撞检测和躲避问题

谢谢千里马肝,好好研究下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 14:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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