Я разрабатываю игру в andegine и хочу создать фон параллакса, который перемещается сверху вниз в портретном режиме, но мой параллакс перемещается справа налево или слева направо. Я установил параметры двигателя на PORTRAIT_FIXED ИЛИ PORTRAIT_SENSOR. как мне выполнить эту задачу? Я искал параметры AutoParallax и ParallaxEntity, но нет возможности установить портретный и ландшафтный режим параллакса.
Как создать вертикальный фон параллакса в android andengine
comment
Вы можете использовать горизонтальный: класс ParallaxBackground. скопируйте его в другой класс и измените следующий код: Функция ParallaxBackground.ParallaxEntity.onDraw(): final float cameraHeight = pCamera.getHeight(); окончательный float shapeHeightScaled = this.mAreaShape.getHeightScaled(); float baseOffset = (pParallaxValue * this.mParallaxFactor) % shapeHeightScaled; в то время как (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