gpt4 book ai didi

c++ - 更有效地迭代

转载 作者:行者123 更新时间:2023-11-28 03:00:44 25 4
gpt4 key购买 nike

有没有一种方法可以更有效地迭代我的碰撞?因为在 250 个对象时,这意味着 250 * 250 == 62500 碰撞检查,这使我的游戏滞后。

int sz = (int)objects.size();
for (int i = 0 ; i < sz ; ++i) {
GameObject *iter = objects[i];

if (!(iter)->Collidable()) { continue; }

for (int i2 = i + 1 ; i2 < sz ; ++i2) {
GameObject *iter2 = objects[i2];

if (!(iter2)->Collidable()) { continue; }

if ((iter)->CheckCollisions((iter2))) {
(iter)->Collided((iter2)->GetID(), (iter2));
(iter2)->Collided((iter)->GetID(), (iter));
}
}
}

最佳答案

考虑调查 quadtrees (或对于 3D,八叉树)。

这些数据结构可以根据相对位置对事物进行分组,从而减少您需要进行的比较次数,只需将它们集中在实际可能发生碰撞的事物上。

关于c++ - 更有效地迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com