Добавим в игру задний фон, основного игрока, анимации и звуковое сопровождение.
Очистка кода
Удалим из программы код, отвечающий за отображение квадрата и текстовых надписей. Оставим только необходимый код для отображения фона и игрока.
Добавление заднего фона
- Скачайте изображение для фона (например, по запросу «background for game» в Google).
- Поместите изображение в папку images проекта.
- Подключите изображение в код. Переименуем переменную в background. Изображение BG.png находится в папке images. Размеры изображения – 618×359 пикселей. Установим такие же размеры для экрана.
- Выводим изображение на экран с координатами (0, 0).
background = pygame.image.load("images/BG.png")
screen = pygame.display.set_mode((618, 359))
# ... дальнейший код ...
screen.blit(background, (0, 0))
Добавление игрока и анимации
- Для анимации игрока понадобится набор изображений (спрайты). Найдите готовый набор спрайтов, например, по запросу «sprite sheet» в Google.
- Распакуйте скачанный архив в папку images.
- Создадим списки изображений: walk_left и walk_right.
- Загрузим изображения в списки:
walk_left = [pygame.image.load(f'images/player_left/Player_left{i}.png') for i in range(1,5)]
walk_right = [pygame.image.load(f'images/player_right/Player_right{i}.png') for i in range(1,5)]
- Создадим переменную player_anim_count со значением 0 для отслеживания текущего кадра анимации.
- Выводим изображение игрока, используя элементы списка walk_right (или walk_left в зависимости от направления движения):
player_anim_count = 0
# ... в цикле игры ...
screen.blit(walk_right[player_anim_count], (300, 250))
player_anim_count += 1
if player_anim_count >= len(walk_right):
player_anim_count = 0
- Для плавной анимации добавим задержку с помощью pygame.time.Clock(). Установим желаемое количество кадров в секунду (FPS).
clock = pygame.time.Clock()
# ... в цикле игры ...
clock.tick(15) # 15 FPS
Анимация фона
Создадим эффект движения фона, выводя два изображения и сдвигая их координаты.
- Создадим переменную bgx со значением 0.
- Выведем два изображения фона с координатами (bgx, 0) и (bgx + 618, 0).
- В цикле игры уменьшим значение bgx на 2.
- Добавим проверку: если bgx равен -618, обнулим bgx.
bgx = 0
# ... в цикле игры ...
screen.blit(background, (bgx, 0))
screen.blit(background, (bgx + 618, 0))
bgx -= 2
if bgx == -618:
bgx = 0
Добавление звука
- Скачайте звуковой файл (MP3).
- Поместите файл в папку sounds проекта.
- Загрузите и воспроизведите звук с помощью pygame.mixer:
pygame.mixer.init()
sound = pygame.mixer.Sound("sounds/бежит.mp3")
sound.play(-1) # -1 для бесконечного воспроизведения
Теперь игра имеет анимированный задний фон, анимированного игрока и фоновую музыку, что улучшает игровой опыт.