2015-10-07 72 views
0

我正在開發一個使用AndEngine的遊戲,並且我爲任何級別創建了一個XML文件... XML文件具有寬度和高度以及背景...我使用sprite作爲背景...如果圖像在資產文件夾中的大小是大的(例如256 * 256)屏幕是黑色的,沒有顯示任何精靈...如果圖像大小爲200 * 200,背景顯示,但繪製(拉伸),以及沒有顯示... camera_width = 800和camera_height = 480 我的代碼有什麼問題?我在資產文件夾中以什麼尺寸拍攝圖像?我的精靈的寬度和高度是多少?AndEngine中的背景伸展

XML文件:

<level width="2500" height="780" background="back1"> 
<entity x="" y="" type=""/> 
... 
</level> 

GameScene:

final int width = SAXUtils.getIntAttributeOrThrow(
          pAttributes, 
          LevelConstants.TAG_LEVEL_ATTRIBUTE_WIDTH); 
        final int height = SAXUtils.getIntAttributeOrThrow(
          pAttributes, 
          LevelConstants.TAG_LEVEL_ATTRIBUTE_HEIGHT); 
        final String backGround = SAXUtils.getAttributeOrThrow(
          pAttributes, TAG_LEVEL_ATTRIBUTE_BACKGROUND); 

        Sprite levelBack; 

        if (backGround 
          .equals(TAG_LEVEL_ATTRIBUTE_BACKGROUND_VALUE_BACK1)) { 
         levelBack = new Sprite(0, 0,height,width, 
           resourceManager.game_back1_region, vbom) { 
          @Override 
          protected void preDraw(GLState pGLState, 
            Camera pCamera) { 
           super.preDraw(pGLState, pCamera); 
           pGLState.enableDither(); 
          } 
         }; 
ParallaxBackground parallaxBackground = new ParallaxBackground(
           0.3f, 0.3f, 0.9f); 
parallaxBackground.attachParallaxEntity(new ParallaxEntity(0,levelBack)); 
setBackground(parallaxBackground); 

回答

0

寬度和高度可以是不同的。所以當你創建:levelBack = new Sprite(0,0,height,width,....,background將被繪製(伸展)。

關於黑屏,我不知道很多,但行: new ParallaxBackground(0.3f, 0.3f, 0.9f);是backgroundColor(0.3,0.3,0.9)?