2012-03-13 31 views
6

recientemente comencé a trabajar en AndEngine. Es difícil encontrar documentación actualizada/material de ayuda en este sentido. Estoy tratando de establecer una imagen de fondo después de ir a través del código fuente de los ejemplos &. Pero por alguna razón, la pantalla permanece en blanco. No puedo encontrar ninguna información útil relacionada con esto. Aquí está el código:Imagen de fondo de AndEngine

public class AndEngineActivity extends BaseGameActivity { 

    private static final int CAMERA_WIDTH = 720; 
    private static final int CAMERA_HEIGHT = 480; 

    private Camera mCamera; 
    private TextureRegion mBgTexture; 
    private BitmapTextureAtlas mBackgroundTexture; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    @Override 
    public Engine onLoadEngine() { 
     // TODO Auto-generated method stub 
     this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
     return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera)); 
    } 

    @Override 
    public void onLoadResources() { 
     // TODO Auto-generated method stub 
     BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); 

     this.mBackgroundTexture = new BitmapTextureAtlas(1024, 1024, TextureOptions.DEFAULT); 
     mBgTexture = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBackgroundTexture, this, "background.png", 0, 0); 

     this.mEngine.getTextureManager().loadTextures(this.mBackgroundTexture); 

    } 

    @Override 
    public Scene onLoadScene() { 

     this.mEngine.registerUpdateHandler(new FPSLogger()); 

     final Scene scene = new Scene(); 
     final int centerX = (CAMERA_WIDTH - 
       mBgTexture.getWidth())/2; final int centerY = (CAMERA_HEIGHT - 
       mBgTexture.getHeight())/2; 
     SpriteBackground bg = new SpriteBackground(new Sprite(centerX, centerY, mBgTexture)); 
     scene.setBackground(bg); 

     return scene; 
    } 

    @Override 
    public void onLoadComplete() { 
     // TODO Auto-generated method stub 

    } 
} 

Respuesta

-3

En lugar de

SpriteBackground bg = new SpriteBackground(...); 
    scene.setBackground(bg); 

tratar

Sprite bg = new Sprite(new Sprite(centerX, centerY, mBgTexture)); 
    scene.attachChild(bg); 
+0

Hola, agradezco la respuesta pero también lo intenté y no sirvió de nada. ¿Me estoy perdiendo de algo? ¿Más ideas? – Mob

+0

Buenas noticias finalmente lo consiguió. como se puede ver en el código adjunto, el método onCreate (..) sobrescribe el diseño. eliminé el método y está funcionando ahora. – Mob

+0

Bueno, sí, no desea tener eso :-) – bos

5

necesita eliminar:

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 
-1

Usar la siguiente:

CCSprite background=CCSprite.sprite("car7m.jpg");