Припустимо, у мене є три шари: передній план, проміжний грунт і фон. Що бере участь у використанні цих трьох шарів для створення прокрутки паралакса ?
Припустимо, у мене є три шари: передній план, проміжний грунт і фон. Що бере участь у використанні цих трьох шарів для створення прокрутки паралакса ?
Відповіді:
Розділіть положення кожного шару на "відстань", яку ви бажаєте від камери.
Наприклад: Створіть пару змінних для відображення положення камери cameraX
та cameraY
. Встановіть їх рівним положенню свого персонажа, можливо, додавши трохи додатково у напрямку руху.
Основний шар просто розміщувався б на
mainLayer.x = -cameraX;
середній шар на щось подібне
middleLayer.x = -cameraX * 0.5;
і далекий шар при
farLayer.x = -cameraX * 0.2;
Змініть константи за потребою.
В основному ви хочете, щоб об'єкти рухалися швидше, чим ближче вони до "камери". Як ви реалізуєте це, залежати від вас.
Я присвоюю кожному моєму шару глибину, а потім, прокручуючи сцену, для кожного шару поділяю цю прокрутку на глибину шару, так що шари, що знаходяться далі, рухаються повільніше.
Найкращий спосіб зробити це - просто викласти спрайти у вигляді квадратиків, розміщених у форматі 3D. "Ігровий процес" може відбуватися в одній площині, тоді як фон і передній план можна розміщувати ближче або далі в 3d-просторі. Таким чином, ефект паралакса обробляється для вас, без того, щоб робити якесь спеціальне кодування :-)