Сбой физики пули из-за неверной ссылки?

Я делаю игру с физикой пули, где у меня есть класс Platform, который содержит btBoxShape, btDefaultMotionState и btRigidBody в качестве членов. При выходе из моей игры происходит сбой. Я храню объекты Platform в std :: vector, и я думаю, что это проблема. Когда я отодвигаю больше платформ, вектор изменяет размеры и перемещается в памяти. Это означает, что любой указатель на форму и движение, которые имеет твердое тело, считается недействительным. Как мне решить это?

0

Решение

Std: deque не сделает недействительными ссылки.

2

Другие решения

Есть несколько вариантов, которые я могу придумать.

std::array/std::vector с фиксированным размером (reserve()), если возможно

std::vector<Platform*> Вы, вероятно, должны использовать умные указатели здесь, но в основном выделяйте себя и храните только указатели в vector,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector