Ubah gambar sprite dan mesin

Hai saya menggunakan Andengine untuk membuat aplikasi Game

karena saya ingin mengubah gambar latar belakang sprite ketika saya mengklik sprite itu. adakah yang bisa membantu saya bagaimana melakukan itu.

this.mFaceTextureRegionBackOn = TextureRegionFactory.extractFromTexture(this.mTextureBackOn);
this.mFaceTextureRegionBackOff = TextureRegionFactory.extractFromTexture(this.mTextureBackOff);

final ButtonSprite back = new ButtonSprite(centerXBack, centerYBack, this.mFaceTextureRegionBackOn, this.getVertexBufferObjectManager());
scene.attachChild(back);
back.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(ButtonSprite arg0, float arg1, float arg2) {
        MainActivity.this.mFaceTextureRegionBackOn = TextureRegionFactory.extractFromTexture(MainActivity.this.mTextureBackOff);
    }
});

ada tombol sprite ketika saya mengklik tombol itu, wilayah teksturnya saya ubah tetapi tidak dapat membantu saya mengubah gambar sprite itu


person Panchal Amit    schedule 25.10.2012    source sumber


Jawaban (2)


Ada penggunaan serupa di AndEngineExamples, lihat https://github.com/nicolasgramlich/AndEngineExamples/blob/GLES2/src/org/andengine/examples/UpdateTextureExample.java

person 正宗白布鞋    schedule 25.10.2012
comment
Namun hal ini memerlukan pembacaan dari disk setiap saat, yang mungkin lebih lambat. - person Mustafa; 30.06.2013
comment
@Mustafa maka Anda harus mempertimbangkan untuk menggunakan TiledSprite normal, dan memuat wilayah tekstur ubin Anda di awal. - person 正宗白布鞋; 30.06.2013

Mengapa Anda tidak membuat dua sprite saja dan mengubah visibilitasnya? Saya mengaktifkan tombol on/off suara dengan cara ini:

soundOnBtn = new Sprite(TILE_SIZE/2, 0, TILE_SIZE, TILE_SIZE, gameResources.getSoundOnTR())
    {
        @Override
        public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY)
        {
            soundOn = !soundOn;
            soundOnBtn.setVisible(soundOn);
            soundOffBtn.setVisible(!soundOn);
            return true;
        }
    };
    mainScene.registerTouchArea(soundOnBtn);
    soundOffBtn = new Sprite(TILE_SIZE/2, 0, TILE_SIZE, TILE_SIZE, gameResources.getSoundOffTR());
    soundOffBtn.setVisible(false);
    bottomPanelLayer.attachChild(soundOnBtn);       
    bottomPanelLayer.attachChild(soundOffBtn);
person elenatres    schedule 14.03.2013