Pygame для начинающих программистов. Статья первая

В современном мире программирования язык Python занимает особое место благодаря своей простоте, читаемости и мощным возможностям. Он стал одним из самых популярных языков среди начинающих разработчиков и профессионалов. Но как же привлечь внимание к этому языку и сделать процесс обучения увлекательным? Ответ прост: через создание игр.

Изучение Python с помощью разработки игр не только делает процесс обучения более интересным, но и помогает освоить ключевые концепции программирования в практическом контексте. Игры — это не просто развлечение; они представляют собой сложные системы, требующие логического мышления, креативности и навыков решения проблем. Разработка игр позволяет новичкам быстро увидеть результаты своего труда, что значительно повышает мотивацию и желание продолжать обучение.

Библиотека Pygame, в свою очередь, предоставляет мощный инструментарий для создания 2D-игр на Python. Она упрощает работу с графикой, звуком и взаимодействием с пользователем, позволяя сосредоточиться на логике игры и дизайне. С Pygame мы будем реализовать свои идеи создавая игровые механики.

В этой серии статей мы погрузимся в увлекательный мир разработки игр на Python с использованием Pygame. Мы здесь повторим основы программирования, создадим свои первые игры и получим навыки, которые будут полезны не только в разработке игр, но и в любых других областях программирования. В общем приготовимся к приключению, полному творчества, обучения и веселья!

Все, хватит с пафосными речами. Ими я просто хотел немного замотивировать начинающих программистов — будущих разработчиков игр.

Эту серию статей я затеял в первую очередь для того что бы систематизировать свои знания, а во вторую, что бы эти знания передать начинающим.

Начнем!!!

Напишем первую, самую простую программу, и будем ее разбирать по косточкам постепенно усложняя. В какой то момент, опираясь на усвоенные знания создадим свою первую игру.

#---Импортируем библиотеку pygame---
import pygame
#---Инциализация---
pygame.init()
#---Создание окна---
pygame.display.set_mode((800, 600))
#---Главный игровой цикл---
run = True
while run:
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            run = False
#---Закрытие всех модулей Pygame---
pygame.quit()

Запускаем и получаем окно:

Запуск кода в IDE PyCharm

Запуск кода в IDE PyCharm

А теперь будем подробно разбирать все, что написали.)

1. Импорт библиотеки: Сначала мы импортируем библиотеку Pygame, чтобы использовать ее функции.

2. Инициализация: Мы вызываем pygame.init(), чтобы подготовить Pygame к работе. Это важно, потому что без этого вызова другие функции могут не работать.

3. Создание окна: Мы создаем окно размером 800 на 600 пикселей.

4. Игровой цикл: В бесконечном цикле мы обрабатываем события (например, закрытие окна нажатием на крестик).

5. Завершение работы: Когда мы выходим из игрового цикла, мы вызываем pygame.quit(), чтобы корректно завершить работу Pygame.

Установка библиотеки Pygame и ее импорт

Перед тем как начать использовать Pygame, необходимо убедиться, что библиотека установлена в вашей среде разработки. Установить Pygame можно с помощью пакетного менеджера pip. Для этого выполните следующую команду в терминале:

pip install pygame

Полный импорт
Наиболее распространенный способ — это полный импорт всей библиотеки:

import pygame
pygame.init()  # Инициализация Pygame
pygame.display.set_mode((800, 600))  # Создание окна

Импорт отдельных модулей
Если вы хотите сократить код и избежать избыточного написания префикса pygame, вы можете импортировать отдельные модули или функции:

from pygame import display, init, quit

Теперь вы можете использовать эти функции напрямую:

init()  # Инициализация Pygame
display.set_mode((800, 600))  # Создание окна

И на конец импорт с псевдонимом
Также возможно импортировать Pygame с использованием псевдонима. Это может сделать код более компактным:

import pygame as pg

Теперь вы можете обращаться к функциям Pygame через псевдоним pg:

pg.init()  # Инициализация Pygame
screen = pg.display.set_mode((800, 600))  # Создание окна

Идем дальше!…

Функция pygame.init ()

Функция pygame.init() — это первая команда, которую нужно вызвать при использовании библиотеки Pygame. Она инициализирует все необходимые модули Pygame, чтобы вы могли начать создавать игры и приложения. Без этой функции многие другие функции Pygame просто не будут работать.

Зачем нужна инициализация?

Подготовка: pygame.init() подготавливает все модули, такие как графика и звук, для использования в вашей игре.

Избежание ошибок: Если не вызвать эту функцию, вы можете столкнуться с ошибками при попытке использовать другие функции Pygame. Таким образом, pygame.init() — это важный шаг для начала работы с Pygame и создания ваших собственных игр или приложений.

Функция pygame.display.set_mode () Создание окна

Функция pygame.display.set_mode() в библиотеке Pygame используется для создания окна, в котором будет отображаться ваша игра или приложение. Эта функция позволяет задать размеры окна, его параметры и флаги, которые определяют поведение окна.

1. Создание окна: Эта функция создает основное окно приложения, в котором будет происходить отрисовка графики.

2. Настройка параметров: Вы можете настроить размеры окна, режим отображения (например, полноэкранный или оконный режим) и другие параметры.

3. Обновление экрана: После создания окна вы сможете обновлять его содержимое с помощью других функций Pygame.

Синтаксис

pygame.display.set_mode(size, flags=0, depth=0, display=0, vsync=0)

size: Кортеж (ширина, высота) — размеры окна в пикселях.

flags: Необязательный параметр, который задает дополнительные параметры (например, pygame.FULLSCREEN для полноэкранного режима).

depth: Необязательный параметр, который задает глубину цвета (обычно не используется).

display: Необязательный параметр, указывающий на конкретный дисплей (в основном для многомониторных систем).

vsync: Необязательный параметр для включения вертикальной синхронизации.

Если вы эту функцию присвоите переменной:

screen = pygame.display.set_mode((800, 600))

То она (переменная screen) позволит вам управлять размерами и режимами отображения вашего приложения в игровом цикле. Используя различные параметры и флаги, вы можете адаптировать ваше окно под нужды пользователей и требования вашей игры.

Функция pygame.quit ()

pygame.quit() — это функция в библиотеке Pygame, которая используется для корректного завершения работы Pygame и освобождения всех ресурсов, связанных с библиотекой. Вот несколько основных причин, почему важно использовать pygame.quit():

1. Освобождение ресурсов: Pygame использует различные системные ресурсы, такие как память и графические контексты. Вызов pygame.quit() освобождает эти ресурсы, что помогает избежать утечек памяти и других проблем.

2. Корректное завершение: Если вы не вызовете pygame.quit(), программа может завершиться некорректно, что может привести к зависаниям или другим нежелательным эффектам. Это особенно важно при разработке более сложных игр, где управление ресурсами имеет значение.

3. Закрытие всех модулей Pygame: Pygame состоит из нескольких модулей (например, для работы с графикой, звуком и вводом). pygame.quit() обеспечивает корректное закрытие всех этих модулей.

4. Удобство отладки: При отладке или тестировании игры наличие pygame.quit() в конце программы помогает убедиться, что все ресурсы были правильно освобождены, и программа завершилась без ошибок.

Немного об игровом цикле

Обычно главный игровой цикл состоит из трех основных частей:

1. Обработка событий: В этой части цикла программа отслеживает события, такие как нажатия клавиш, движения мыши и другие взаимодействия пользователя. Это позволяет игре реагировать на действия игрока.

2. Обновление состояния игры: Здесь происходит обновление всех игровых объектов, таких как персонажи, враги, предметы и т.д. Это может включать изменение их положения, анимацию и проверку условий победы или поражения.

3. Отрисовка: В этой части цикла все элементы игры отрисовываются на экране. Это включает в себя очистку предыдущего кадра и рисование новых позиций объектов.

На данном этапе нам важен первый блок, это — Обработка событий

run = True
while run:
    # Обработка событий
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            run = False

• Используется pygame.event.get(), чтобы получить список всех событий, произошедших с последнего кадра.

• Цикл for перебирает все события, и если событие — это закрытие окна (pygame.QUIT), то устанавливается переменнаяrun в False, что завершит цикл, корректно выйдет из программы и закроет наше игровое окно. Все!!!

Теперь у нас есть рабочий код, который будем в последующих статьях усовершенствовать. Последовательно изучать и разбирать новые модули и их методы.

© Habrahabr.ru