2014-11-05 77 views
0

我在andegine中開發遊戲,我想創建一個視差背景,在縱向模式下從上到下移動,但是我的視差從右向左移動或從左向右移動。我已經將我的引擎選項設置爲PORTRAIT_FIXED或PORTRAIT_SENSOR。我如何實現這個任務我已經尋找AutoParallax和ParallaxEntity的選項,但沒有選項來設置肖像和視差如何在android中創建垂直視差背景andengine

+1

你可以水平的:ParallaxBackground類。將其複製到不同的類並更改以下代碼:ParallaxBackground.ParallaxEntity.onDraw()function: final float cameraHeight = pCamera.getHeight(); final float shapeHeightScaled = this.mAreaShape.getHeightScaled(); float baseOffset =(pParallaxValue * this.mParallaxFactor)%shapeHeightScaled; \t \t while(baseOffset> 0){ \t \t \t baseOffset - = shapeHeightScaled; \t \t} \t \t pGLState.translateModelViewGLMatrixf(0,baseOffset,0); \t \t float currentMaxY = baseOffset; ... (沒有更多空間,無法格式化代碼,很抱歉!) – voodoo98 2014-11-10 10:05:36

回答

2

風景模式剛剛發現這一點 - http://www.andengine.org/forums/post306324.html#p31347

的傢伙創造了2個新的類別AutoVerticalParallaxBackground和VerticalParallaxBackground,它正是你想要的! (我正在使用它)。所以你可以使用VerticalParallaxBackground或者兩者都取決於你喜歡的結果:)。

垂直視差的背景可以實現爲:

mVerticalParallaxBackground = new VerticalParallaxBackground(0, 0, 0); 
    mVerticalParallaxBackground.attachVerticalParallaxEntity(new VerticalParallaxEntity(-5.0f, 
      new Sprite(0, SCREEN_HEIGHT 
        - mResourceManager.mParallaxLayerRoad.getHeight(), 
        mResourceManager.mParallaxLayerRoad, 
        mVertexBufferObjectManager))); 

setBackground(mVerticalParallaxBackground); 

我用這個舉例(一AutoVerticalParallaxBackground):

mAutoVerticalParallaxBackground 
      .attachVerticalParallaxEntity(new VerticalParallaxEntity(-5.0f, 
        new Sprite(0, SCREEN_HEIGHT 
          - mResourceManager.mParallaxLayerRoad 
            .getHeight(), 
          mResourceManager.mParallaxLayerRoad, 
          mVertexBufferObjectManager))); 

    setBackground(mAutoVerticalParallaxBackground); 

我不值得任何信貸這個答案。我把它放在這裏,讓其他人可以輕鬆找到它!