Разработвам игра в andegine и искам да създам фон на паралакс, който се движи отгоре надолу в портретен режим, но моят паралакс се движи отдясно наляво или отляво надясно. Задал съм опциите на моя двигател на PORTRAIT_FIXED ИЛИ PORTRAIT_SENSOR. как да постигна тази задача Търсих опциите за AutoParallax и ParallaxEntity, но няма опция за задаване на портретен и пейзажен режим на паралакса
Как да създадете вертикален паралакс фон в android andengine
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