Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Создание игры в Python

Создание игры в Python — это описание процесса создания игровых программ на языке программирования Python.

Введение

Одним из распространенных мотивов изучения программирования является желание создать игру своими силами. Прежде всего можно освоить программирование на языке Python, а также понять, как в нем реализованы процессы объектно-ориентированного программирования. А для независимой установки движков следует применять виртуальные окружения.

Игровые движки для Python, как правило, представлены в виде библиотек, которые могут быть установлены при помощи менеджера pip или загружены с площадок распространения кода. Альтернативой библиотекам являются следующие автономные среды, которые служат исключительно, для того чтобы программировать игры:

  1. Среда Unreal Engine.
  2. Среда Unity.
  3. Среда Godot.

Эти программы обладают многими отличиями от игровых движков Python по многим аспектам:

  1. Набор поддерживаемых языков. Среды программирования игр, как правило, сформированы на Cи-подобных языках и предполагают использование соответствующих языков для создания игр. А именно, в среде Unity это C#, в Unreal Engine это язык C++.
  2. Набор поддерживаемых платформ. Автономные среды предоставляют возможность без дополнительных усилий формировать игры для разных платформ, в том числе и для мобильных устройств. При этом, процесс переноса игры, написанной на Python, на мобильные устройства является достаточно непростой задачей.
  3. Проблемы лицензирования. Игры, которые написаны с применением автономного игрового движка, обладают особыми условиями лицензирования и дальнейшего распространения.

Создание игры в Python

В связи с изложенным выше, может возникнуть вопрос, зачем тогда вообще применять Python для создания игр? По этому поводу необходимо отметить, что применение GameDev-сред предполагает изучение документации и, как правило, владение новым языком программирования. При этом при использовании игровых движков на Python, программисты пользуются в основном уже накопленными знаниями. Это обстоятельство способно помочь быстрее продвигаться вперед и достичь первых результатов.

«Создание игры в Python» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Критериями отбора движков Python могут служить следующие аспекты:

  1. Критерий популярности.
  2. Критерий актуальной поддержки.
  3. Наличие качественной документации.

Для каждого из движков следует рассмотреть способ установки, базовую терминологию и главные возможности, предназначенные для реализации игр. Pygame способен расширить собой библиотеку SDL (Simple DirectMedia Layer), которая предназначена для межплатформенного доступа к мультимедийным аппаратным элементам системы, таким как, мышка, клавиатура, джойстик, аудио- и видеоустройства.

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

(venv) $ python -m pip install pygame python -m pip install pygame

Для того чтобы проверить правильность установки, нужно запустить пример, который поставляется вместе с библиотекой:

(venv) $ python -m pygame.examples.aliens python -m pygame.examples.aliens

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

Для того чтобы управлять ходом игры, применяется понятие игрового цикла Game loop. Функциональность игрового цикла должен реализовать сам автор, а Pygame может предоставить требуемые методы и функции. Любая итерация игрового цикла именуется кадром (frame). За один кадр игра способна выполнять следующие действия:

  1. Обработку пользовательских вводов от мышки, клавиатуры или джойстика при помощи модели событий.
  2. Обновлять состояния игровых объектов, таких как, спрайты (образы героев и предметов), изображения, шрифты и цвета. Объекты могут быть описаны подходящими структурами данных или при помощи классов Pygame.
  3. Обновлять дисплей и аудио выход. Pygame способен обеспечить абстрактный доступ к оборудованию, для того чтобы отображать картинки и передавать звук при помощи внутренних модулей display, mixer и music.
  4. Сохранять или изменять скорость игры. Модуль pygame.time может позволить автору контролировать скорость игры. Это позволяет обеспечить работу игры с одинаковой скоростью на разном оборудовании, при этом библиотека способна гарантировать завершение каждого кадра в течение необходимого периода времени.

Приведем базовый пример использования Pygame, в котором движок формирует на экране две фигуры и выводит текст:

#Импортирование и инициализация библиотеки

ίmport pygame

pygame.ίnit()

#Установка ширины и высоты окна в пикселях

WIDTH = 800

HEIGHT = 600

#Настройка окна отрисовки

screen = pygame.dίsplay.set_mode([WIDTH, HEIGHT])

#Игровой цикл должен выполняться, пока пользователь не пожелает выйти

runnίng = True

whίle runnίng:

#Нажимал ли пользователь кнопку закрытия окна?

for event in pygame.event.get():

if event.type == pygame.QUIT:

runnίng = False

#Заполнение фона белым цветом screen.fίll((255, 255, 255))

#Прорисовка синего круга в центре экрана радиусом 50

pygame.draw.cίrcle(screen, (0, 0, 255), (WIDTH // 2, HEIGHT // 2), 50)

#Прорисовка красного контурного квадрата в верхнем левом углу экрана

red_square = pygame.Rect((50, 50), (100, 100))

pygame.draw.rect(screen, (200, 0, 0), red_square, 1)

#Прорисовка оранжевого текста с кеглем 60

text_font = pygame.font.SysFont("any_font", 60)

text_block = text_font.render(

"Hello, World! From Pygame", False, (200, 100, 0)

)

screen.blίt(text_block, (50, HEIGHT - 50))

#Обновление экрана

pygame.dίsplay.flίp()

#Цикл завершен! Выход.

pygame.quίt()

Для запуска кода следует использовать команду:

(venv) $ python pygame/pygame_basίc.py python pygame/pygame_basίc.py

Дата написания статьи: 30.01.2023
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot