Глава 20 · Станьте разработчиком игр с Pygame
Настраиваем игровой экран!
Игровой цикл — сердце любой игры на Pygame: он пишется вручную, кадр за кадром.
Настраиваем игровой экран!
Экран Pygame — обычная поверхность (Surface) заданного
размера:
igrovoj_ekran.py
import pygame
pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Моя первая игра")
Игровой цикл
В отличие от Tkinter с его mainloop(), в Pygame игровой цикл
пишут вручную — это даёт полный контроль над тем, что происходит на каждом кадре:
igrovoj_cikl.py
clock = pygame.time.Clock()
rabotaet = True
while rabotaet:
for event in pygame.event.get():
if event.type == pygame.QUIT:
rabotaet = False
pygame.display.flip() # показать нарисованный кадр
clock.tick(60) # не больше 60 кадров в секунду
pygame.quit()
Зачем нужен pygame.QUIT?
Без обработки события
pygame.QUIT (нажатие на крестик окна) программа не узнает, что пользователь хочет закрыть игру, и окно перестанет отвечать. Обработка событий в начале каждого кадра цикла — обязательная часть любой программы на Pygame.Делаем экран красивым
screen.fill(цвет) закрашивает весь экран цветом (в виде
кортежа RGB, глава 11) — обычно первая команда в каждом кадре, иначе на экране останутся
«следы» от предыдущего кадра:
zalivka_fona.py
CVET_FONA = (20, 20, 40)
screen.fill(CVET_FONA)
Практика в Jupyter Notebook
20-02-ekran.ipynb · включает игровой цикл и заливку фона