高级碰撞检测(二)——居于格子的大量单位的检测方法

对于大多数引擎来说,大量对象之间的移动和碰撞会引发很多的问题,一个不留意就会把渲染速度给降下来,所以对大量对象的碰撞检测有很多的探讨余地,当然这也要结合项目的具体情况来实现。

如果只有6个相互作用的对象进行两两检测时,假设给定对象为A、B、C、D、E、F,那么它们需要进行以下15次检测:

AB、AC、AD、AE、AF

BC、BD、BE、BF

CD、CD、CF

DE、DF

EF

那么可以得到这种检测方法的次数是(N*N - N)/2,可以看到,检查的次数会随着对象的数量而飞速增长,100个单位单独检查的话,需要完成4950次,相信基本哪个引擎都经不起这样的折腾的,如果是应用上一节的hitTest方法,那能撑到50个就已经很了不起了。那么,居于格子的碰撞检测方法就可以有很好的施展空间了,具体以下进行讲解。

所谓居于格子检测方法,就是将地图分成一个个格子来考虑,一般我们习惯用一个二维数组存取每一个格子的数据,注意,单元格至少要和最大的对象一样大,然后根据对象中心所在的位置将各个对象分配到该网格的某个

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值