0

パラメータにスプライトを渡し、メソッドでそのオブジェクトを初期化しますが、メソッドで渡したオブジェクトの参照はまだnullです。これが私の方法です。

public void createAndLoadSimpleSprite(Sprite sprite ,String name,
        SimpleBaseGameActivity activity, int width, int height) {

    BitmapTextureAtlas atlasForBGSprite = new BitmapTextureAtlas(
            activity.getTextureManager(), width, height);
    TextureRegion backgroundSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(atlasForBGSprite, activity, name, 0, 0);
    sprite = new Sprite(0, 0, backgroundSpriteTextureRegion,
            activity.getVertexBufferObjectManager());
    activity.getTextureManager().loadTexture(atlasForBGSprite);

}

そしてここで私はそれをどのように呼んでいますか。

createAndLoadSimpleSprite(defualtCageSprite,"bg.png", this, 450, 444);

しかし、defaultCageSprite にアクセスすると、まだ null ポインター例外がスローされます... AndEngine の問題かどうかはわかりません。しかし、スプライトを AndEngine のパラメーターとして渡すことはできません。回避策はありますか??

4

2 に答える 2

3

これは AndEngine の問題ではありません。あなたはJavaの仕組みを扱っています。私の知る限り、出力パラメーターを持つことはできません。「return」を使用するか、フィールドを作成してデータを保存する必要があります。

于 2012-07-15T06:21:04.683 に答える
1

スプライト オブジェクトを返すようにメソッドを変更する必要があります。

public Sprite createAndLoadSimpleSprite(String name,
    SimpleBaseGameActivity activity, int width, int height) {

BitmapTextureAtlas atlasForBGSprite = new BitmapTextureAtlas(
        activity.getTextureManager(), width, height);
TextureRegion backgroundSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
        .createFromAsset(atlasForBGSprite, activity, name, 0, 0);
activity.getTextureManager().loadTexture(atlasForBGSprite);

Sprite sprite = new Sprite(0, 0, backgroundSpriteTextureRegion,
        activity.getVertexBufferObjectManager());

return sprite;

}

これで、次のように呼び出すことができます。

defualtCageSprite = createAndLoadSimpleSprite("bg.png", this, 450, 444);

スプライトを に添付することを忘れないでくださいscene

于 2012-07-15T12:29:08.267 に答える