Я понимаю концепцию обнаружения коллизий на основе сетки, но одна маленькая деталь, я не знаю, как это сделать. Я узнал, что постоянное добавление и сброс векторов занимает много времени, поэтому я не уверен, как хранить тела в ячейках сетки.
У меня есть вектор тел, поэтому мои настройки для сетки должны быть такими:
std::vector <int> grid[1000][1000]; //[x grid][y grid][list of bodies' indices in that cell]
ИЛИ ЖЕ
int grid[1000][1000][500]; //[x grid][y grid][list of bodies' indices in that cell]
и то, и другое кажется очень непрактичным в использовании, так как это такой большой объем данных, и потому что третий индекс должен был бы быть сброшен каждый раз правильно? Насколько я понимаю, все в сетке всегда подвержено изменениям, поскольку, если изменяется min x или y, положение [0] [0] также изменится, и, поскольку очевидно, что есть движущиеся тела, третий индекс должен будет быть сброшен и повторно добавлен в каждый кадр.
Я не уверен, что я должен делать по-другому, но я уверен, что что-то не так с тем, как я это настроил или как я об этом думаю
РЕДАКТИРОВАТЬ: размер сетки в положениях x и y также может быть изменен, так как разница между max и min может отличаться, «1000» — это просто значение, которое я добавил туда, и которое будет работать для меня прямо сейчас
Задача ещё не решена.