2013-08-17 66 views
0

我正在做子彈物理的遊戲,我有一個Platform類,它包含一個btBoxShape,btDefaultMotionState和一個btRigidBody作爲成員。當退出我的遊戲時它崩潰。我將Platform對象存儲在std :: vector中,我認爲這是問題。當我推回更多的平臺時,矢量會調整大小並在內存中移動。這意味着無論指向剛體所具有的形狀和運動狀態的指針是否無效。我應該如何解決這個問題?子彈物理因無效參考而崩潰?

回答

2

std:deque不會使引用無效。

0

有幾個選項我可以想到。

std::array/std::vector具有固定大小(reserve()),如果可能的話

std::vector<Platform*>你或許應該在這裏使用智能指針,但基本上分配自己,只存儲指針在vector

+0

我不是一個存儲指針的人,Bullet做到了。它的對象需要指向相關對象的指針。 –

+0

@ CarolineBengtsson哦,我看到 –

+0

@ CarolineBengtsson我的新答案是否有幫助? –