Так что в настоящее время я пытаюсь разработать 2D-игру, в которой у меня есть разные объекты разных размеров. Для производительности я решил использовать единую сетку для столкновения.
Я понимаю, что для каждого объекта мы сохраняем их в соответствующей ячейке сетки для проверки на столкновение. Но поскольку наш объект - это не точка, а фактически прямоугольник, нам необходимо несколько раз хранить объекты в нескольких ячейках (например, когда объект перекрывает несколько ячеек).
Проблема возникает, когда я пытаюсь реализовать эти данные структура с использованием связанного списка. Для единого массива сетки, который содержит связанные списки объектов, каждый объект содержит пару указателей на предыдущий и следующий объекты, которые находятся в одной и той же ячейке. Это означает, что если у меня есть Объект A, B, C в ячейке 1, я не могу сделать так, чтобы Объект B находился в нескольких ячейках, если бы он перекрывался, потому что Объект B уже указывает на объект A и C в ячейке. 1, и он больше не может указывать на какой-либо другой объект в ячейке 2.
Простым решением будет просто использовать вектор или массив, но есть ли лучшие решения?