Pygame: Передвижение и прыжок игрока (Урок 5)

Передвижение игрока

Для реализации передвижения игрока используем переменные, аналогичные переменным для передвижения фона. Нам понадобится переменная скорости и координата X игрока.

player_speed = 5  # Скорость передвижения игрока
player_x = 150  # Начальная координата X игрока

player_x установлена в 150, чтобы игрок не находился в центре экрана.

Для отслеживания нажатия клавиш используем pygame.key.get_pressed(). Метод возвращает массив со состоянием каждой клавиши.

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 50:
    player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < 200:
    player_x += player_speed

Код проверяет нажатие клавиш влево и вправо (pygame.K_LEFT и pygame.K_RIGHT). Движение игрока ограничено диапазоном от 50 до 200 по оси X.

Прыжок и анимация

Чтобы предотвратить выход игрока за границы экрана, движение ограничено диапазоном от 50 до 200 пикселей по оси X.

Для анимации используем разные наборы картинок в зависимости от направления движения. Движение влево – wolf_left, вправо – wolf_right, отсутствие движения – wolf.

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    #Использовать wolf_left
elif keys[pygame.K_RIGHT]:
    #Использовать wolf_right
else:
    #Использовать wolf

Реализация прыжка

Для прыжка потребуются переменные:

player_y = ... # Координата Y игрока
is_jump = False # Флаг прыжка
jump_count = 7  # Высота прыжка

В основном цикле игры добавим обработку нажатия пробела:

keys = pygame.key.get_pressed()
if not is_jump:
    if keys[pygame.K_SPACE]:
        is_jump = True

elif is_jump:
    if jump_count >= -7:
        neg = 1
        if jump_count < 0:
            neg = -1
        player_y -= (jump_count ** 2) * 0.5 * neg
        jump_count -= 1
    else:
        is_jump = False
        jump_count = 7

Код проверяет, происходит ли прыжок (is_jump). Если нет, то при нажатии пробела (pygame.K_SPACE) устанавливает is_jump в True и начинает прыжок. Во время прыжка игрок перемещается вверх и вниз в зависимости от jump_count, затем возвращается в исходное положение. jump_count определяет высоту прыжка.

В этом уроке реализовано передвижение и прыжок игрового персонажа. Игрок может перемещаться влево и вправо, а также прыгать. Изменяя значения переменных, можно настроить скорость движения и высоту прыжка.

Что будем искать? Например,программа