2013-08-17 3 views
0

저는 BtBoxShape, btDefaultMotionState 및 btRigidBody가 멤버로 포함 된 Platform 클래스가있는 총알 물리학을 사용하여 게임을 만들고 있습니다. 내 게임을 종료 할 때 충돌이 발생합니다. Platform 객체를 std :: vector에 저장하고 이것이 문제라고 생각합니다. 더 많은 플랫폼을 뒤로 밀면 벡터 크기가 조절되어 메모리로 이동합니다. 이것은 강체가 갖는 모양 및 동작 상태에 대한 포인터가 무효화됨을 의미합니다. 어떻게 해결해야합니까?잘못된 참조로 인해 불릿 물리가 충돌합니까?

답변

2

표준 : deque는 참조를 무효화하지 않습니다.

0

내가 생각할 수있는 몇 가지 옵션이 있습니다. 당신은 아마 여기에 스마트 포인터를 사용하지만, 기본적으로 자신을 할당하고 저장해야

std::vector<Platform*> 가능하면 고정 된 크기 (reserve())와

std::array/std::vector

, 그냥 vector에 포인터.

+0

나는 포인터를 저장하는 사람이 아니다. 불릿은 그것을한다. 객체에는 관련 객체에 대한 포인터가 필요합니다. –

+0

@CarolineBengtsson 오, 알겠습니다. –

+0

@CarolineBengtsson 내 새로운 답변이 도움이됩니까? –