游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: zmcdn

求助!关于四叉树碰撞检测。。。。。

[复制链接]

5

主题

29

帖子

33

积分

注册会员

Rank: 2

积分
33
 楼主| 发表于 2010-4-15 12:12:00 | 显示全部楼层

Re: Re:求助!关于四叉树碰撞检测。。。。。

游戏视界: Re:求助!关于四叉树碰撞检测。。。。。

"把叶子连起来"的"遍历"是使用step+1的算法来实现目标结果的搜索,所以效率极低;

...

哎~~~~~~~~~~~~~我还是不太明白。。。
您能具体说说四叉树动态物体碰撞的步骤吗?
我的理解是:如果要遍历所有的方格,当然四叉树快。如果算出动态物体所在的方格,只需要与这个方格和这个方格周围的8个方格内的物体检测碰撞。 [em4]

36

主题

512

帖子

512

积分

高级会员

Rank: 4

积分
512
发表于 2010-4-16 08:03:00 | 显示全部楼层

Re:求助!关于四叉树碰撞检测。。。。。

你先要确定你想在客户端做碰检的主要目的是什么?

5

主题

29

帖子

33

积分

注册会员

Rank: 2

积分
33
 楼主| 发表于 2010-4-16 11:39:00 | 显示全部楼层

Re: Re:求助!关于四叉树碰撞检测。。。。。

游戏视界: Re:求助!关于四叉树碰撞检测。。。。。

你先要确定你想在客户端做碰检的主要目的是什么?


目的就是,检测动态物体与静态物体,动态物体与动态物体之间的碰撞。我想弄个像warcraft3那样的游戏。

36

主题

512

帖子

512

积分

高级会员

Rank: 4

积分
512
发表于 2010-4-16 20:21:00 | 显示全部楼层

Re: Re: Re:求助!关于四叉树碰撞检测。。。。。

zmcdn: Re: Re:求助!关于四叉树碰撞检测。。。。。



目的就是,检测动态物体与静态物体,动态物体与动态物体之间的碰撞。我想弄个像warcraft3那样的游戏。

碰撞一般由服务器端来判断。

四叉树一般适用于处理场景相关业务。

5

主题

972

帖子

975

积分

高级会员

Rank: 4

积分
975
发表于 2010-4-16 22:52:00 | 显示全部楼层

Re:求助!关于四叉树碰撞检测。。。。。

用loose quadtree

5

主题

29

帖子

33

积分

注册会员

Rank: 2

积分
33
 楼主| 发表于 2010-4-16 23:13:00 | 显示全部楼层

Re:求助!关于四叉树碰撞检测。。。。。

场景不复杂的情况下能不能不用树?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2010-4-17 00:04:00 | 显示全部楼层

Re:求助!关于四叉树碰撞检测。。。。。

动态物体和静态物体分开
动态物体用动态的树

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2010-4-18 22:56:00 | 显示全部楼层

Re:求助!关于四叉树碰撞检测。。。。。

看你的需求,直接用grid就好(做碰撞检测不需要遍历所有格子,你的理解是对的)。后期如果觉得效率不行,做个简单的剖析,看碰撞这块是不是最慢的。是的话,再考虑其它方法。
另外,四叉树多用于静态物体,场景(如果想高效处理动态物体,有很多细节需要考虑)。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2010-5-2 19:02:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

9

主题

132

帖子

145

积分

注册会员

Rank: 2

积分
145
QQ
发表于 2010-5-18 08:38:00 | 显示全部楼层

Re: 求助!关于四叉树碰撞检测。。。。。

在碰撞检测上:
            四叉树和tile是一样的, 四叉树的叶子就是一个tile, 没有必要从根开始, 直接搜叶子,
            还有分配叶子的使用数组,
                                   比如 1: qnode[1]
                                        2: qnode[4]
                                        3: qnode[16]
                                            .
                                            .
                                            .

主要在剔除上会不同:
            tile要逐个搜, 而四叉树父节点不可见则子节点可以忽略了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 18:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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