基于网格的碰撞检测设置

时间:2014-11-21 04:53:19

标签: c++ grid collision-detection partitioning

我理解基于网格的碰撞检测的概念,但是我不确定如何去做的一个小细节。我已经了解到不断添加和重置向量需要花费大量时间,所以我不确定如何在网格的单元格中存储实体。

我有一个正文矢量,所以我对网格的设置就是:

std::vector <int> grid[1000][1000]; //[x grid][y grid][list of bodies' indices in that cell]

OR

int grid[1000][1000][500]; //[x grid][y grid][list of bodies' indices in that cell]

这两个看起来都非常不切实际,因为它是如此大量的数据,并且因为第三个索引必须每次都正确重置?根据我的理解,网格中的所有内容总是会发生变化,因为如果最小x或y发生变化,[0] [0]的位置也会发生变化,并且由于显然有移动体,第三个指数必须重置并重新添加到每一帧。

我不确定我应该采取哪些不同的方式,但我确定我的设置方式或我正在考虑的方式有问题

编辑:x和y位置的网格大小也可能会发生变化,因为max和mins之间的差异可能不同,“1000”只是我插入的值,对我来说是正确的现在

0 个答案:

没有答案
相关问题