Глава 20 · Станьте разработчиком игр с Pygame

Перемещаем персонажей

Движение — это просто изменение координат на каждом кадре; клавиатуру можно проверять двумя разными способами.

Перемещаем персонажей

«Движение» в Pygame — это просто изменение переменных позиции на каждом кадре перед тем, как персонаж будет нарисован заново:

peremeshenie.py
x_igroka += skorost_x
pygame.draw.rect(screen, CVET_IGROKA, (x_igroka, y_igroka, 40, 40))

События нажатия клавиш

Есть два способа узнать о клавиатуре. Первый — через события, как в pygame.event.get() (удобно для разовых действий вроде прыжка):

sobytiya_klavish.py
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
            print("Прыжок!")

Второй способ — проверка текущего состояния клавиш на каждом кадре (удобнее для непрерывного движения, например, персонажа влево-вправо):

sostoyanie_klavish.py
klavishi = pygame.key.get_pressed()
if klavishi[pygame.K_LEFT]:
    x_igroka -= 5
if klavishi[pygame.K_RIGHT]:
    x_igroka += 5
Какой способ выбрать?
События (event.type == pygame.KEYDOWN) подходят для действий «один раз за нажатие» — прыжок, выстрел, пауза. get_pressed() подходит для непрерывного движения, пока клавиша зажата, — именно так реализовано управление кораблём в главе 21.
Практика в Jupyter Notebook
20-04-dvizhenie-klavishi.ipynb · движение и оба способа обработки клавиш
Открыть ноутбук →