2012-03-13 10 views
6

recentemente ho iniziato a lavorare su AndEngine. Difficile trovare documentazione aggiornata/materiale di supporto in questo senso. Sto cercando di impostare un'immagine di sfondo dopo aver esaminato il codice sorgente degli esempi &. Ma per qualche motivo lo schermo rimane vuoto. Non riesco a trovare alcuna informazione utile relativa a questo. Ecco il codice:AndEngine background image

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 

    } 
} 

risposta

-3

Invece di

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

provare

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

Ciao, apprezzo la risposta, ma ho provato anche quello e non è stato d'aiuto. Mi sto perdendo qualcosa? Altre idee? – Mob

+0

Le buone notizie hanno finalmente capito. come si può vedere nel codice allegato sopra il metodo onCreate (..) sovrascrive il layout. Ho rimosso il metodo e ora funziona. – Mob

+0

Beh, sì, non vuoi averlo :-) – bos

5

è necessario eliminare:

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

Usa la seguente:

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