Глава 21 · Проект: космический шутер
Полный код
Вся игра целиком — уже собранная и проверенная — и подведение итогов главы.
Полная, уже собранная и проверенная игра — отдельным файлом:
📄 projects/pygame/space-shooter/space_shooter.py
Запустите игру у себя
python space_shooter.py в терминале. Управление: стрелки влево/вправо — движение, пробел — выстрел.★★ Самостоятельная задача
Жизни вместо мгновенного конца
Добавьте переменную zhizni = 3 — при столкновении корабля с врагом отнимайте одну жизнь и убирайте врага, вместо немедленного окончания игры.
★★★ Задача повышенной сложности
Уровни сложности
Постепенно уменьшайте INTERVAL_POYAVLENIYA_VRAGA по мере роста счёта — враги должны появляться всё чаще.
Итоги
Что мы узнали в этой главе
- Крупный проект строится из уже знакомых, более мелких приёмов — корабль, враги и пули устроены похоже, просто с разными правилами движения.
pygame.Rectхранит позицию и размер вместе и умеет проверять столкновения через.colliderect().- При удалении элементов по условию безопаснее собрать новый список уцелевших элементов, чем изменять список во время перебора.
- Текст в Pygame рисуется в два шага:
render()создаёт изображение,blit()накладывает его на экран. - Порядок отрисовки элементов кадра определяет, что окажется «поверх» — рисуйте фон первым, интерфейс (счёт, финальный экран) — последним.