Передвижение игрока
Для реализации передвижения игрока используем переменные, аналогичные переменным для передвижения фона. Нам понадобится переменная скорости и координата 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 определяет высоту прыжка.
В этом уроке реализовано передвижение и прыжок игрового персонажа. Игрок может перемещаться влево и вправо, а также прыгать. Изменяя значения переменных, можно настроить скорость движения и высоту прыжка.