0

編集:

みんなありがとう、わかった!Explode() 関数は、新しいクローンではなく、古いオブジェクトから呼び出されたようです! :)


そのようなオブジェクトのハッシュテーブルがあります

class BodyDataObj implements Cloneable {

  World world;
  Body body;

  protected BodyDataObj clone() throws CloneNotSupportedException {
    return (BodyDataObj) super.clone();
  }

}

必要に応じて、ハッシュテーブルから必要なオブジェクトのクローンを作成します

BodyDataObj bodyDataMaster = bdoTable.get(name);
BodyDataObj bodyData = null;

try {
  bodyData = (BodyDataObj) bodyDataMaster.clone();
} catch (CloneNotSupportedException e) { 
  // Handle error
}

bodyData.world = world;
bodyData.body = body;

worldおよびbodyオブジェクトを、既に複製されたオブジェクトに渡しbodyDataます。

しかし、BodyDataObjオブジェクト内からこのワールドとボディ オブジェクトにアクセスしようとするとNullPointException、クローンされた空白であるかのように が表示されます。

それを修正する方法はありますか?

ありがとう!

4

1 に答える 1

1

コメントへの回答から、答えは次のようです。

b.getWorldCenter() は null を返します。

于 2012-05-17T13:58:04.697 に答える