Глава 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 · движение и оба способа обработки клавиш