次のように実装された別のスレッドで物理が更新されるゲームのセットアップがあります
物理プロセッサ (物理スレッド)
public class PhysicsProcessor extends Runnable {
private DynamicsWorld world;
public PhysicsProcessor() {
/* basic dynamics world setup with dvbt broadphase :P */
}
public synchronized getDynamicsWorld() { return world; }
@Override
public void run() {
/* update time */
//update phyics
getDynamicsWorld().stepSimulation(/* delta time */);
}
}
メインスレッドでのオブジェクト作成の例
myPhysicsProcessor.getDynamicsWorld.addRigidBody(/* some rigid body created here */);
問題は、ゲームを実行すると、「stepSimulation」の別のスレッドで null ポインター例外が発生することがあるということです。これは、dbvt ブロードフェーズの setAabb が原因でした。
この例外を防ぐために私ができること、またはそれを回避する方法について何か提案はありますか?