游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1813|回复: 7

请大家进来讨论讨论

[复制链接]

77

主题

203

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
发表于 2005-7-22 09:14:00 | 显示全部楼层 |阅读模式
碰撞检测时,可以用圆来表示移动物体的范围,根据圆中心的距离来确定物体是否发生碰撞(没用到单元格),这样的好处是精确,物体想每桢移动多少像素就移动多少,看起来平滑的多,但这样会使运算量增加(如:如果有50个人物最坏的情况须比较49*49次),如果用单元格,50个人物只须运算50次,但物体每次移动只能是单元格的整数倍,并且使人物与单元格大小相符上不大好控制,请问,如果是一种比较大的游戏,我用第一种方法行不行?在效率上能基本行的通么?

0

主题

69

帖子

73

积分

注册会员

Rank: 2

积分
73
QQ
发表于 2005-7-23 16:27:00 | 显示全部楼层

Re:请大家进来讨论讨论

打个比方,有100个敌人每人向你发射100颗子弹,你方小队20人每人向他们还击50颗子弹,同时还有10到20枚手榴弹和榴弹炮的爆炸,炮弹和子弹击中所有的东西,并且多次发生反弹和喷溅,碎裂,子弹碎裂2到4块,炮弹则碎裂到20到60块,要最坏情况下要比较将是天文数字,这点不能不考虑到,要不然会出问题的 [em10]

77

主题

203

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
 楼主| 发表于 2005-7-24 10:03:00 | 显示全部楼层

Re:请大家进来讨论讨论

嗯,楼上的意思我明白了,看来得是用单元格的了!

2

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2005-7-25 09:35:00 | 显示全部楼层

Re:请大家进来讨论讨论

可以用层次式的碰撞检测,记得 Programming Gems(记不得1,2还是3了) 上有一篇任天堂的一个人写的文章,可以将时间复杂度降至 nlog(n)

5

主题

51

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2005-7-25 09:56:00 | 显示全部楼层

Re:请大家进来讨论讨论

就是用包围球。他本来的目的就是处理大量移动的物体。

0

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2005-7-25 16:23:00 | 显示全部楼层

Re:请大家进来讨论讨论

有八叉树,将世界按八叉树方式分割,任何物体都在八叉树上运动(包括风,火,碎片、声音等),让每个要关心事件的物体只关心自己所在范围里的事件,这个范围很小。

77

主题

203

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
 楼主| 发表于 2005-7-25 16:30:00 | 显示全部楼层

Re:请大家进来讨论讨论

请问,如何建立八叉树?又是怎样用它?能详细介绍一下么?谢谢!!

77

主题

203

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
 楼主| 发表于 2005-7-26 14:27:00 | 显示全部楼层

Re: Re:请大家进来讨论讨论

debroa723: Re:请大家进来讨论讨论

有八叉树,将世界按八叉树方式分割,任何物体都在八叉树上运动(包括风,火,碎片、声音等),让每个要关心事件的物体只关心自己所在范围里的事件,这个范围很小。

能给详细的介绍一下么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 13:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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