Предположим, у меня есть три слоя: передний план, промежуточный слой и фон. Что входит в использование этих трех слоев для создания параллаксной прокрутки ?
Предположим, у меня есть три слоя: передний план, промежуточный слой и фон. Что входит в использование этих трех слоев для создания параллаксной прокрутки ?
Ответы:
Разделите положение каждого слоя на «расстояние», которое вы хотите, чтобы оно было от камеры.
Например: создайте пару переменных для представления положения камеры cameraX
и cameraY
. Установите их так, чтобы они равнялись положению вашего персонажа, возможно добавляя немного больше в направлении движения.
Основной слой будет просто расположен в
mainLayer.x = -cameraX;
средний слой в чем-то вроде
middleLayer.x = -cameraX * 0.5;
и дальний слой в
farLayer.x = -cameraX * 0.2;
Измените константы по мере необходимости.
По сути, вы хотите, чтобы объекты двигались быстрее, чем ближе они к «камере». Как вы реализуете это зависит от вас.
Я назначаю каждому из своих слоев глубину, а затем, прокручивая сцену, для каждого слоя я делю эту прокрутку на глубину слоя, чтобы слои, которые находятся дальше, двигались медленнее.
Лучший способ сделать это - просто визуализировать спрайты в виде квадратов с билбордами в 3D. «Геймплей» может происходить в одной плоскости, а фон и передний план могут располагаться ближе или дальше в трехмерном пространстве. Таким образом, эффект параллакса обрабатывается для вас без какого-либо специального кодирования :-)