2015-02-05 4 views
0

Недавно я начал работать над AndEngine.And Engine background image

Я пытаюсь установить фоновое изображение моей сцены.

Но по каким-либо причинам фоновое изображение не заполняет экран полностью.

Любое предложение и помощь?

Вот мой исходный код:

public class MainActivity extends BaseGameActivity { 

Scene sc; 

protected final static int cam_wid = 320; 

protected final static int cam_heigh = 456; 

BitmapTextureAtlas texAtlas; 

    ITextureRegion texRegion; 

    @Override 
    public EngineOptions onCreateEngineOptions() { 
     // TODO Auto-generated method stub 
     Camera ca = new Camera(0, 0, cam_wid, cam_heigh); 
     EngineOptions en = new EngineOptions(true, 
       ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(
         cam_wid, cam_heigh), ca); 
     return en; 
    } 

    @Override 
    public void onCreateResources(
      OnCreateResourcesCallback pOnCreateResourcesCallback) 
      throws Exception { 
     // TODO Auto-generated method stub 
     load(); 
     pOnCreateResourcesCallback.onCreateResourcesFinished(); 
    } 

    private void load() { 
     // TODO Auto-generated method stub 
     BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); 
     texAtlas = new BitmapTextureAtlas(getTextureManager(), 256, 512); 
     texRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(
       texAtlas, this, "imagery.png", 0, 0); 
     texAtlas.load(); 
    } 

    @Override 
    public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) 
      throws Exception { 
     // TODO Auto-generated method stub 
     this.sc = new Scene(); 
     Sprite s = new Sprite(0, 0, cam_wid, cam_heigh, texRegion, 
       this.mEngine.getVertexBufferObjectManager()); 
     SpriteBackground sb = new SpriteBackground(s); 
     sc.setBackground(sb); 
     pOnCreateSceneCallback.onCreateSceneFinished(sc); 
    } 

    @Override 
    public void onPopulateScene(Scene pScene, 
      OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception { 
     // TODO Auto-generated method stub 
     pOnPopulateSceneCallback.onPopulateSceneFinished(); 
    } 

} 

ответ

0

Получить ширину устройства и высоту, как показано ниже, и использовать его

DisplayMetrics dm = new DisplayMetrics(); 
this.getWindowManager().getDefaultDisplay().getMetrics(dm); 
cam_wid =dm.widthPixels; 
cam_heigh =dm.heightPixels; 

Другая вещь Ваша фоновая картинка может быть меньше (меньше высоты), чем ваш экран. Так что либо вы масштабируете изображение, либо вы делаете повторение. В последнем случае вы можете настроить атлас текстуры на TextureOptions.REPEATING_BILINEAR, а затем сделать спрайт больше.

+0

Я все еще не в состоянии выяснить проблему. Я попытался настроить значения ширины и высоты моего изображения в соответствии с настройками моего телефона. – user3624963

+0

, пожалуйста, обновите выше код @ user3624963 –

+0

обновил мой код – user3624963