游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5439|回复: 18

碰撞用的四叉树的搜索效率如何才能体现出来?

[复制链接]

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2005-10-16 12:19:00 | 显示全部楼层 |阅读模式
场景中的物体在每一个计算周期的位置都不相同,那么是不是每个周期都重新历遍?

0

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-10-16 12:35:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

这种遍历还是比较快的,而且不一定都要从根节点开始遍历。

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-16 13:28:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

我也想不通究竟如果判断从哪一层开始遍历

0

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-10-16 15:52:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

如果物体已在节点n中,那么可以认为与该物体发生潜在碰撞可能的物体为n节点中的其他物体以及n以下的所有节点中的物体,还有n的所有祖先节点中的物体。也就是说需要向下遍历搜索和向上的寻根搜索。

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-16 22:08:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

那么还是要在每个计算周期开始时,都要重新生成树,判断每个物体在哪个节点上

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-10-16 22:35:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

矩形判断我有很好的办法,  不占用资源

AX > A And AX < A+100 And  BX > B And BX < B+ 100 Then  到击中程序

AX,BX=子弹坐标
A,B=敌人坐标
现在是 100 x 100 的矩形  , 我的打击者1940里用的这个方法.

0

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-10-16 22:37:00 | 显示全部楼层

Re:碰撞用的四叉树的搜索效率如何才能体现出来?

不可以完全这样想,因为基本上游戏中静态的物体都会比动态的多得多,而且动态的也不一定每时每刻都在移动,即使移动,大多速度也不会达到每秒钟几百米(子弹可以)。因此静态的物体无需update,对于动态的,我们可以根据物体原来所在的节点比较快速地找出新位置时的节点,这种速度其实是非常快的。

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-16 22:59:00 | 显示全部楼层

Re: Re:碰撞用的四叉树的搜索效率如何才能体现出来?

游戏之家: Re:碰撞用的四叉树的搜索效率如何才能体现出来?

矩形判断我有很好的办法,  不占用资源

AX > A And AX < A+100 And  BX > B And BX < B+ 100...


这方法在2D游戏里比较常用,简单兼方便

不过我发这贴主要是学习叉树

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-10-16 23:07:00 | 显示全部楼层

Re: Re:碰撞用的四叉树的搜索效率如何才能体现出来?

无影无踪: Re:碰撞用的四叉树的搜索效率如何才能体现出来?

不可以完全这样想,因为基本上游戏中静态的物体都会比动态的多得多,而且动态的也不一定每时每刻都在移动,...


一言惊醒啊~!感谢一个!

在3D场景应该是用六叉树吧?这个不太好理解

0

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2005-10-16 23:10:00 | 显示全部楼层

Re: Re: Re:碰撞用的四叉树的搜索效率如何才能体现出来?

zlcnkkm: Re: Re:碰撞用的四叉树的搜索效率如何才能体现出来?



一言惊醒啊~!感谢一个!

在3D场景应该是用六叉树吧?这个不太好理解

3D中的是8叉树,其实4叉树在3D中也是经常用到的,例如地形(terrian)。8叉树的道理和4叉树是一样的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 07:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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