2015-10-07 71 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)?