Рассказываем, как можно создать свою первую игру на Python с использованием библиотеки Pygame. Добавим графику, обработку ввода с клавиатуры, добавим звука!
Python
Python — это язык программирования, который широко используется в интернет-приложениях, разработке программного обеспечения, науке о данных и машинном обучении (ML). Разработчики используют Python, потому что он эффективен, прост в изучении и работает на разных платформах. Программы на языке Python можно скачать бесплатно, они совместимы со всеми типами систем и повышают скорость разработки.В чем заключаются преимущества языка Python?
Язык Python имеет следующие преимущества:- Разработчики могут легко читать и понимать программы на Python, поскольку язык имеет базовый синтаксис, похожий на синтаксис английского.
- Python помогает разработчикам быть более продуктивными, поскольку они могут писать программы на Python, используя меньше строк кода, чем в других языках.
- Python имеет большую стандартную библиотеку, содержащую многократно используемые коды практически для любой задачи. В результате разработчикам не требуется писать код с нуля.
- Разработчики могут легко сочетать Python с другими популярными языками программирования: Java, C и C++.
- Активное сообщество Python состоит из миллионов поддерживающих разработчиков со всего мира. При возникновении проблем сообщество поможет в их решении.
- Кроме того, в Интернете доступно множество полезных ресурсов для изучения Python. Например, вы можете легко найти видеоролики, учебные пособия, документацию и руководства для разработчиков.
- Python можно переносить на различные операционные системы: Windows, macOS, Linux и Unix.
Где применяется Python?
Язык Python имеет несколько стандартных примеров использования при разработке приложений, в числе которых:
Веб-разработка на стороне сервера
Веб-разработка на стороне сервера включает в себя сложные серверные функции, с помощью которых веб-сайты отображают информацию для пользователя. Например, веб-сайты должны взаимодействовать с базами данных и другими веб-сайтами, а также защищать данные при их отправке по сети.
Python полезен при написании серверного кода, поскольку он предлагает множество библиотек, состоящих из предварительно написанного кода для сложных серверных функций. Также разработчики используют широкий спектр платформ Python, которые предоставляют все необходимые инструменты для более быстрого и простого создания интернет-приложений. Например, разработчики могут создать «скелет» интернет-приложения за считанные секунды, потому что им не нужно писать код с нуля. Затем его можно протестировать с помощью инструментов тестирования платформы независимо от внешних инструментов тестирования.
Автоматизация с помощью скриптов Python
Язык скриптов — это язык программирования, который автоматизирует задачи, обычно выполняемые людьми. Программисты широко используют скрипты Python для автоматизации многих повседневных задач, среди которых:
- Одновременное переименование большого количества файлов
- Преобразование файла в другой тип файла
- Удаление повторяющихся слов в текстовом файле
- Выполнение базовых математических операций
- Отправка сообщений электронной почты
- Загрузка контента
- Выполнение базового анализа журналов
- Поиск ошибок в нескольких файлах
Наука о данных извлекает ценную информацию из данных, а машинное обучение (ML) позволяет компьютерам автоматически учиться на данных и делать точные прогнозы. Специалисты по работе с данными используют Python для решения следующих задач:
- Исправление и удаление неверных данных (очистка данных)
- Извлечение и выбор различных характеристик данных
- Разметка данных добавляет данным значимые имена
- Поиск статистической информации в данных
- Визуализация данных с помощью диаграмм и графиков: линейных диаграмм, столбчатых диаграмм, гистограмм и круговых диаграмм
Разработка программного обеспечения
Разработчики программного обеспечения часто используют Python для различных задач разработки и программных приложений, среди которых:
- Отслеживание ошибок в программном коде
- Автоматическая сборка программного обеспечения
- Управление программными проектами
- Разработка прототипов программного обеспечения
- Разработка настольных приложений с использованием библиотек графического пользовательского интерфейса (ГПИ)
- Разработка игр: от простых текстовых игр до сложных видеоигр
Создание игр с использованием библиотеки Pygame
Pygame — это кросс-платформенная библиотека для разработки видеоигр на языке программирования Python. Она включает в себя множество функций, которые облегчают разработку игр, таких как отрисовка графики, обработка ввода и управление звуком. В этой статье мы рассмотрим, как создать простую игру на Python с использованием библиотеки Pygame.
Установка Python
Для начала нам нужно установить последнюю версию интерпретатора Python. Важный момент - для того, чтобы можно было пользоваться интерпретатором Python из командной строки или из редактора, необходимо добавить соответствующие переменные окружения. Это можно сделать выбрав соответствующую опцию при установке.Ссылка для скачивания Python - https://www.python.org/downloads/
Редактор кода Visual Studio Code (VS Code)
Для редактирования программного кода нашей будущей игры нам понадобиться редактор кода. Существует множество различных по функциональности редакторов кода. Для целей данной статьи мы остановимся на редакторе Visual Studio Code (или если кратко VS Code). Visual Studio Code (VS Code) - это редактор кода для разных языков программирования. Он относительно немного весит, гибкий и удобный. В нем можно писать, форматировать и редактировать код на разных языках программирования.VS Code не стоит путать с Visual Studio — это IDE, очень мощная и масштабная, но одновременно с этим тяжеловесная. Названия похожи, потому что у обоих средств разработки один и тот же создатель, но продукты разные по своей сути. VS Code меньше весит, проще в освоении и подходит в том числе для начинающих разработчиков.
Редактор кода существует для всех популярных операционных систем: Windows, Linux и macOS. Он бесплатный, в отличие от большинства версий «старшего брата» Visual Studio.
VS Code позволяет легко писать, форматировать и редактировать код на разных языках. С его помощью можно быстро создать проект и структуру файлов в нем, он подсвечивает синтаксис кода и помогает автоматически править ошибки. В нем есть возможности для отладки и запуска кода на некоторых языках.
Скачать Visual Studio Code можно по ссылке - https://code.visualstudio.com/download
Расширения VS Code для работы с Python
После скачивания редактора Visual Studio Code необходимо дополнительно скачать необходимые расширения для работы с языком программирования Python - рекомендуем установить Python или Python Extention Pack:Установка Pygame
Для начала работы с Pygame, вам нужно установить его на ваш компьютер. Вы можете сделать это с помощью следующей команды:pip install pygame
Процесс создания игры
Структура каталогов - что у тебя в структуре каталогов, то и в голове )
Перед тем как начать создание нашей игры давайте поговорим о том, что на самом деле есть еще один важнейший этап - это проектирование и разработка дизайна нашей программы.На этом этапе выполняются важнейшие задачи - определяется для чего мы создаем наше приложение, описываем функции, которыми данное приложение должно обладать, какие пользователи могут быть у нашей программы и много другое.
Также решаются технические вопросы - а как мы будем создавать нашу программу, как хранить основные файлы нашей программы, где мы храним изображения, нужные библиотеки и многое другое. Всему этому мы будем учиться с вами в нашей Академии развития и компьютерных технологий RUBY.
А пока пожалуй давайте начнем с самого простого - определим структуру каталогов для хранения файлов нашей программы - назовем папку для нашей программы - simplegame, а также создадим внутри нее еще одну папку с именем images для хранения изображений для фона и автомобиля:
PS C:\python\simplegame> ls
Каталог: C:\python\simplegame
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 27.09.2023 1:20 .vscode
d----- 27.09.2023 13:54 images
d----- 27.09.2023 13:26 venv
-a---- 27.09.2023 13:57 886 game.py
Подключение необходимых библиотек
# подключение игровой библиотеки pygame
import pygame
# подключение библиотеки для работы с операционной системой компьютера (понадобиться для открытия файлов с нашими изображениями)
import os
Создание функции загрузки изображений
# добавим функцию загрузки изображений
def load_image(name, colorkey=None):
# загрузка изображения в память
fullname = os.path.join('', name)
try:
image = pygame.image.load(fullname)
except pygame.error as message:
print('Cannot load image:', name)
raise SystemExit(message)
# конвертирование изображения
image = image.convert_alpha()
#
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey)
return image
Инициализация библиотеки Pygame и параметров окна нашей будущей игры
В первую очередь наша игра должна иметь свое игровое окно - это главный интерфейс нашей будущей игры. Вот пример кода для создания окна размером 1200 на 700 пикселей# инициализация
pygame.init()
# установка режима экрана 1200 на 700 пикселей
screen = pygame.display.set_mode((1200, 700))
# выставление названия окна
pygame.display.set_caption("My Game")
all_sprites = pygame.sprite.Group()
Создание нашего основного персонажа - автомобиля
Для управления нашим автомобилем, мы должны создать специальный объект в коде программы. Этот объект имеет необходимые свойства, изменяя которые возможно управлять действиями объекта. Например передвигать его в нашей игре.# создание автомобиля
hero = pygame.sprite.Sprite(all_sprites)
hero_image = load_image("images/car-frame-250x140px.png")
hero.image = hero_image
hero.rect = hero.image.get_rect()
hero.rect.x = 100
hero.rect.top = 530
all_sprites.add(hero)
Загрузка фонового изображения
Добавим нашему окну игры фон, который мы заранее подготовили. Вы можете скачать их из файлов, прилагаемых к данной статье. Загрузим графические объекты:# загрузка изображений для фона
background = pygame.image.load("images/game-background-1200x700.png")
Управление движением нашего автомобиля
Чтобы сделать игру интерактивной, добавим обработку нажатия клавиш клавиатуры. Вот пример программного кода для перемещения нашего героя-автомобиля влево или вправо при нажатии на стрелки ВЛЕВО или ВПРАВО. Обращаем внимание что для того, чтобы постоянно проверять была ли нажата клавиша мы впоследствии будем использовать бесконечный цикл, в противном случае мы не сможем управлять нашим автомобилем.# управление движением автомобиля, контроль нажатия клавиатуры
# проверяем была ли нажата клавиша keys = pygame.key.get_pressed() # если была нажата клавиша ВЛЕВО - перемещаем автомобиль на 5 пикселей по оси Х влево
if keys[pygame.K_LEFT]: # движение влево hero.rect.x -= 5
# если была нажата клавиша ВПРАВО - перемещаем автомобиль на 5 пикселей по оси Х вправо if keys[pygame.K_RIGHT]: # движение вправо hero.rect.x += 5
Объединим части программы, отвечающие за отрисовку главного окна нашей игры и добавление фона и автомобиля
Стоит обратить внимание еще на одну деталь в коде нашей программы - это комментарии. Комментарии помогают нам понимать какая часть кода за что отвечает, а также быстрее искать ошибки, которые неминуемо возникают у каждого разработчика (даже самого опытного). Комментируйте ваш код так, чтобы вы могли легко читать его, а в идеальной ситуации любой член вашей команды мог прочитать и ориентироваться в вашем коде - это признак профессионализма.
import pygame
import os
# добавим функцию загрузки изображений
def load_image(name, colorkey=None):
# загрузка изображения в память
fullname = os.path.join('', name)
try:
image = pygame.image.load(fullname)
except pygame.error as message:
print('Cannot load image:', name)
raise SystemExit(message)
# конвертирование изображения
image = image.convert_alpha()
#
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey)
return image
# инициализация
pygame.init()
screen = pygame.display.set_mode((1200, 700))
pygame.display.set_caption("My Game")
all_sprites = pygame.sprite.Group()
# создание автомобиля
hero = pygame.sprite.Sprite(all_sprites)
hero_image = load_image("images/car-frame-250x140px.png")
hero.image = hero_image
hero.rect = hero.image.get_rect()
hero.rect.x = 100
hero.rect.top = 530
all_sprites.add(hero)
# загрузка изображений для фона
background = pygame.image.load("images/game-background-1200x700.png")
# запуск основного цикла игры
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# управление движением автомобиля, контроль нажатия клавиатуры
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]: # движение влево
hero.rect.x -= 5
if keys[pygame.K_RIGHT]: # движение вправо
hero.rect.x += 5
# заливка фона
screen.fill((0, 0, 0))
# отрисовка фонового изображения
screen.blit(background, (0, 0))
# отрисовка изображения автомобиля
all_sprites.draw(screen)
pygame.display.flip()
# завершение работы программы после выхода из основного цикла программы
pygame.quit()
Если мы все сделали правильно, то на выходе получим результат
Заключение
Надеемся данная статья была полезной для вас. Желаем вам успехов в освоении программирования и будем ждать вас в нашей Академии развития и компьютерных технологий RUBY.Также вы можете просмотреть видеообзор - https://youtu.be/CFcnngIDqOM