Как да създадете вертикален паралакс фон в android andengine

Разработвам игра в andegine и искам да създам фон на паралакс, който се движи отгоре надолу в портретен режим, но моят паралакс се движи отдясно наляво или отляво надясно. Задал съм опциите на моя двигател на PORTRAIT_FIXED ИЛИ PORTRAIT_SENSOR. как да постигна тази задача Търсих опциите за AutoParallax и ParallaxEntity, но няма опция за задаване на портретен и пейзажен режим на паралакса


person Furqan Ali    schedule 05.11.2014    source източник
comment
Можете да използвате хоризонталния клас: ParallaxBackground. копирайте го в различен клас и променете следния код: ParallaxBackground.ParallaxEntity.onDraw() функция: final float cameraHeight = pCamera.getHeight(); final float shapeHeightScaled = this.mAreaShape.getHeightScaled(); float baseOffset = (pParallaxValue * this.mParallaxFactor) % shapeHeightScaled; while(baseOffset › 0) { baseOffset -= shapeHeightScaled; } pGLState.translateModelViewGLMatrixf(0, baseOffset, 0); float currentMaxY = baseOffset; ... (няма повече място, не мога да форматирам кода, съжалявам!)   -  person voodoo98    schedule 10.11.2014


Отговори (1)


Току-що намерих това - 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);

Не заслужавам никакви заслуги за този отговор. Поставям го тук, за да могат други хора да го намерят лесно!

person sij_a    schedule 26.09.2015