Эта игровая библиотека Python полна функций, включая несколько простых инструментов, которые вы можете использовать для создания плавной прокрутки с эффектом параллакса.
Прокрутка фона может значительно улучшить визуальную привлекательность и глубину игры. Они могут создавать иллюзию движения, придавая игре динамичный и захватывающий вид. Вы можете реализовать прокрутку фона всего за несколько простых шагов, используя Pygame.
Pygame — популярная библиотека Python, которую можно использовать для разработки игр. Добавление прокручиваемых фонов в ваши проекты Pygame оживит их и обеспечит более увлекательный опыт для игроков.
Создайте простую игру
Чтобы понять концепцию прокрутки фона в Pygame, начните с создания простой игры, в которой игрок может перемещаться влево и вправо. Вы также можете включить две платформы, представленные прямоугольниками, которые будут служить игровой средой. Создайте новый файл с именем простая-game.py.
Код, используемый в этой статье, доступен в этом Репозиторий GitHub и вы можете использовать его бесплатно по лицензии MIT.
Сначала импортируйте модуль pygame и инициализируйте его. Затем определите начальную позицию игрока и скорость движения. Создавайте платформы с помощью игра. прямоугольник объектов и определить их положение и размеры.
Внутри игрового цикла обрабатывайте такие события, как выход из игры. Вы также можете справиться движение игрока на основе сенсорного ввода или ввода с клавиатуры.
Вот результат простой игры:
Создайте разные слои
Чтобы добиться эффекта прокрутки, вы можете создать несколько слоев фона с разными цветами. Каждый слой будет двигаться с разной скоростью, создавая эффект параллакса. Этот эффект создает иллюзию глубины и усиливает ощущение движения в игре.
Определите два фоновых слоя, каждый из которых покрывает все окно игры, используя pygame. Прямоугольные объекты. Также определите цвета каждого слоя в background_colors список. background_speeds list определяет скорость, с которой будет двигаться каждый слой.
# Добавьте этот код под предыдущим разделом
background_layers = [
игра. Прямой(0, 0, ширина_экрана, высота_экрана),
игра. Прямой(0, 0, ширина_экрана, высота_экрана)
]
background_colors = [(30, 30, 30), (60, 60, 60)]
background_speeds = [0.1, 1.0]
Чтобы создать эффект прокручивающегося фона, вам нужно обновить положение фоновых слоев в игровом цикле. Вы будете перемещать каждый слой по горизонтали в зависимости от назначенной ему скорости.
Создайте новый файл с именем прокрутка-bg.py и добавьте код со следующими обновлениями:
для я в диапазон (длина (background_layers)):
background_layers[i].x -= background_speeds[i]если background_layers[i].x <= -screen_width:
background_layers[i].x = 0
pygame.draw.rect(экран, background_colors[i], background_layers[i])
Пройдитесь по каждому фоновому слою. Вычтите соответствующую скорость из координаты x слоя, заставив его двигаться влево. Если слой достигает левого края экрана, сбросьте его положение вправо, создав эффект непрерывной прокрутки.
Окончательно, нарисуйте каждый прямоугольный фоновый слой на экране с помощью pygame.draw.rect() и передать соответствующий цвет и pygame. Прямоугольный объект.
Добавление эффекта параллакса во время движения
Чтобы усилить эффект параллакса, вы можете изменить движение платформы, чтобы оно происходило при движении игрока. Это создаст сильное ощущение глубины и динамического движения. Создайте новый файл с именем параллакс.py и добавьте код со следующими обновлениями:
# Определить положение и скорость платформы
rect1 = pygame. Прямой(50, высота_экрана - 100, 200, 10)
rect2 = pygame. Прямоугольник (экран_ширина - 250, высота_экрана - 200, 200, 10)платформы = [
{"прямой": прямоугольник1, "скорость": 3},
{"прямой": прямоугольник2, "скорость": 1}
]# Добавьте этот код внутрь игрового цикла
# Движение игрока
ключи = pygame.key.get_pressed()если ключи[pygame. K_LEFT] и игрок_х > 0:
player_x -= скорость_игрокадля Платформа в платформы:
Платформа["прямой"].x -= платформа["скорость"]если ключи[pygame. K_RIGHT] и player_x < ширина_экрана:
player_x += player_speedдля Платформа в платформы:
Платформа["прямой"].x += платформа["скорость"]
для Платформа в платформы:
pygame.draw.rect (экран, (0, 255, 0), Платформа["прямой"])
Представляйте платформы в виде словарей, содержащих как прямоугольный объект (прямоугольник), так и скорость, с которой должна двигаться платформа (скорость). Платформы обновляются в игровом цикле в зависимости от движения игрока.
При реализации этой модификации эффект прокрутки будет активен только тогда, когда игрок активно движется, что еще больше усиливает иллюзию глубины и движения.
Включая дополнительные функции
Вы можете реализовать несколько дополнительных функций, чтобы улучшить фон прокрутки в вашей игре. Вот некоторые примеры.
Рандомизировать цвета фона
Чтобы разнообразить фоновые слои, вы можете рандомизировать их цвета. Вы можете сделать это, изменив background_colors список:
Импортировать случайный
# Добавьте этот код перед игровым циклом
background_colors = [
(случайный.randint(0, 255), случайный.randint(0, 255), случайный.randint(0, 255)),
(случайный.randint(0, 255), случайный.randint(0, 255), случайный.randint(0, 255)),
(случайный.randint(0, 255), случайный.randint(0, 255), случайный.randint(0, 255))
]
Добавьте больше фоновых слоев
Вы можете поэкспериментировать с добавлением дополнительных фоновых слоев, чтобы создать более насыщенный эффект параллакса. Просто определите дополнительные игра. прямоугольник объекты, цвета и скорости:
# Добавьте этот код перед игровым циклом
background_layers = [
игра. Прямой(0, 0, ширина_экрана, высота_экрана),
игра. Прямой(0, 0, ширина_экрана, высота_экрана),
игра. Прямой(0, 0, ширина_экрана, высота_экрана),
игра. Прямой(0, 0, ширина_экрана, высота_экрана)
]background_colors = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
background_speeds = [1, 2, 3, 4]
Используйте изображения для фона
Вместо сплошных цветов вы можете использовать файлы изображений в качестве фона. Pygame предоставляет функции для загрузки и рендеринга изображений..
Загрузите файлы изображений background_0.png, фон_1.png, и фон_2.png с использованием pygame.image.load(). Используйте метод convert() для повышения производительности и масштабирования изображений в соответствии с размерами экрана с помощью pygame.transform.scale().
# Добавьте этот код перед игровым циклом
background_images = [
pygame.image.load("фон_0.png").конвертировать(),
pygame.image.load("фон_1.png").конвертировать(),
pygame.image.load("фон_2.png").конвертировать()
]background_speeds = [1, 2, 3]
для я в диапазон (длина (background_images)):
размер = (ширина_экрана, высота_экрана)
background_images[i] = pygame.transform.scale (background_images[i], размер)
Наконец, обновите цикл, в котором вы рисуете фоновые слои, чтобы использовать изображения:
# Обновите этот код внутри игрового цикла
для я в диапазон (длина (background_layers)):
background_layers[i].x -= background_speeds[i]если background_layers[i].x <= -screen_width:
background_layers[i].x = 0
screen.blit (background_images[i], background_layers[i])
Вот несколько рекомендаций, которые следует учитывать при реализации прокручиваемых фонов в ваших проектах Pygame.
Оптимизация производительности
Прокручиваемые фоны включают в себя непрерывный рендеринг и обновление. Чтобы обеспечить плавный игровой процесс, подумайте об оптимизации кода и минимизации ненужных вычислений.
Экспериментируйте со скоростью слоя
Регулировка скорости фоновых слоев может создавать различные эффекты. Поэкспериментируйте с различными значениями, чтобы найти правильный баланс и добиться желаемого визуального эффекта.
Протестируйте на разных размерах экрана
Убедитесь, что ваши прокручиваемые фоны хорошо работают на различных разрешениях экрана. Рассмотрите возможность динамического масштабирования или использования разных фоновых изображений для разных соотношений сторон.
Используйте подходящие форматы изображений
Если вы решите использовать изображения для фона, выберите подходящий формат изображения (например, PNG, JPEG), чтобы сбалансировать размер файла и качество изображения. Вы также можете сократить время загрузки, сжимая и оптимизируя изображения.
Учитывайте использование памяти
Если вы планируете использовать много изображений с высоким разрешением для фона, помните о требованиях к памяти. Большие изображения могут потреблять значительный объем памяти, что может повлиять на производительность и скорость отклика вашей игры.
Включая прокручиваемые фоны, вы можете создавать различные среды, такие как движущиеся ландшафты, футуристические городские пейзажи или подводные миры. Эффект параллакса добавляет динамики, делая игровой мир живым и интерактивным.
Не забывайте экспериментировать, повторять и исследовать творческие возможности с прокруткой фона, чтобы сделать ваши игры более увлекательными и увлекательными для игроков.