Создадим новую группу и назовем его Camera & Parallax. Добавляем в эту группу действие связанное с камерой.
Проверяем. Так мы на самом деле добавили стандартную камеру, но нам необходима плавная камера. Удаляем это действие, и выбираем такое действие.
Здесь вы можете увидеть функцию lerp(a, b, c). Данная функция выполняет линейную интерполяцию между точкой А и Б. Интерполяция в GDevelop – это переход от точки А к точке через промежуточные точки за определенное время.
Считается интерполяция по следующей формуле: a + (a – b) * c. Выполнятся данная формула будет пока не результат не достигнет значения Б или А.
Допустим а =10 – это точка А, b = 50 – точка Б, а с = 0.05 – это поиск промежуточной точки между А и Б.
Получается 10 + (50 -10) * 0.05 = 12 – это первая точка между А и Б, куда переместится камера. Далее
12 + (50-10)*0.05 = 14 – следующая точка куда переместится камера и т.д.
Если с = 1 то камера сразу же переместится к точки Б и дальнейших вычислений не будет. Если с=0, то камера останется в точке А, т.к. уравнение всегда будет давать результат точки А.
Мы в первом параметре указали положение CameraX() – ее изначальное значение это центр экрана. Затем указали значение Player.X() и третий параметр – поиск точек. Чем меньше это значение, тем дольше переход от точка А к точке Б.
Теперь давайте поставим камеру и по оси Y.
Теперь добавим параллаксный фон.
Создаем новые тайловые спрайты.
Далее создадим 3 новых слоя.
Теперь поместим наши новые объекты в соответствующие слои.
И разместим слои так:
Теперь в событиях для камеры Фона устанавливаем такое значение.
Для остальных камер устанавливаем такие значения.
Готово!)