Библиотека Pygame / Часть 1. Введение. Как создавать игры на python

Pipfile и Pipfile.Lock — это современные способы управления Python. Папка images содержит изображения, используемые в игре (в версиях только фоновые изображения); папка Sound_effects содержит небольшие аудиоклипы (можно догадаться), используемые в качестве звуковых эффектов; папка Pipfile.Lock содержит изображения, используемые в игре.

Создание 2D платформера на Python

Для многих Python — это язык для написания онлайн-проектов, машинного обучения или анализа данных. На самом деле, он более функционален, и эта статья докажет вам это.

Для реализации игр в Python вы можете выбрать одну из множества библиотек. Вы можете использовать Kivy, Tkinter, Pyqt или любую другую библиотеку, которая предоставляет графический интерфейс через Python. Существует множество таких библиотек, но библиотека Pygame — это то, что нужно.

Pygame был представлен в 2000 году. С тех пор было реализовано множество интересных проектов. К сожалению, Pygame не является универсальным, и его рост наблюдается только на устройствах Android.

Настройка проекта

Прежде чем использовать Pygame, его необходимо установить с устройства. Команды для написания:.

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

Здесь мы также добавляем отслеживание действий пользователя. Когда окно закрывается, программа останавливается.

Вы также можете посмотреть подробное видео о разработке 2D платформеров на Python + Pygame.

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

Другие интересные новости.

Запугивание поисковых систем в Интернете

Страшные поисковые системы в Интернете

Как избежать порчи глаз перед экраном?

Как избежать порчи глаз перед экраном?

10 самых провальных технологических стартапов последнего десятилетия

10 самых провальных технологических стартапов последнего десятилетия

Можно ли использовать JavaScript для определения IP-адреса пользователя?

Как JavaScript может определить IP-адрес пользователя?

Большинство игр имитируют естественную среду. В Breakout мяч подпрыгивает на объектах и имеет очень приблизительную систему физического твердого состояния (если это можно так назвать).

Создание шаблона Pygame

Теперь, когда мы знаем элементы игры, мы можем приступить к написанию кода. Мы начнем с создания простой программы Pygame. Это просто открывает окно и запускает цикл игры. Это отправная точка для всех проектов Pygame.

В начале программы вы вводите необходимые библиотеки и определяете основные переменные игры.

Затем необходимо открыть окно игры.

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

Далее необходимо создать игровой цикл.

Игровой цикл — это временной цикл, управляемый переменной выполнения. Если вы хотите, чтобы игра закончилась, просто измените выполнение на false. Это приведет к завершению цикла. Теперь вы можете ввести основной код для каждого раздела.

Раздел рендеринга (отрисовки)

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

Цветовая диаграмма RGB

Экраны компьютеров состоят из пикселей, каждый из которых содержит три элемента: красный, зеленый и синий. Цвет пикселя определяется тем, как освещен каждый элемент.

Каждый из трех основных цветов может иметь значение от 0 (выключен) до 255 (100% выключен), поэтому каждый элемент имеет 256 вариантов.

Общее количество цветов, отображаемых компьютером, можно рассчитать путем умножения

Теперь, когда вы знаете, как работают цвета, вы можете определить их в начале программы.

  Зонирование комнаты: идеи и варианты (95 фото). Как разделить комнату на 2 части.

После этого заполняется весь экран.

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

Представьте, что у вас есть двухсторонняя панель, которую можно повернуть, чтобы отобразить любую сторону. Один из них — экран (то, что видит игрок), а другой остается скрытым, так что «видеть» его может только компьютер. Кадр за кадром, рендеринг происходит за столом. По завершении представления таблица поворачивается, и ее содержимое показывается игроку.

Это означает, что процесс рендеринга выполняется один раз за кадр, а не при добавлении каждого элемента.

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

Главное — убедиться, что перевертыш ( ) находится в конце. Если вы попытаетесь нарисовать что-то после переворота, содержимое не появится на экране.

Раздел ввода (событий)

Поскольку игры еще нет, трудно сказать, какие кнопки или другие элементы управления еще нужны. Однако есть важные события, которые необходимо организовать. Если вы попытаетесь запустить программу здесь, вы обнаружите, что не можете закрыть окно. Недостаточно нажать на крестик в верхнем углу. Это также событие, и вам нужно сказать программе, чтобы она прочитала его и закрыла игру соответствующим образом.

Дело в том, что это происходит постоянно. Что произойдет, если игрок нажмет кнопку прыжка во время игры? Это нельзя игнорировать. Если их не игнорировать, игрок будет разочарован. Для этого pygame сохраняет все события, произошедшие с момента последнего кадра. Если игрок отскакивает от кнопки, кнопка не теряется. Создается список, и вы можете просмотреть их все с помощью цикла for.

В Pygame есть много фактов, на которые вы можете ответить. Pygame.QUIT — это событие, которое запускается после нажатия на перекрестие и завершает цикл игры, передавая значение False в переменную выполнения.

Например, враг следит за игроком и знает его позицию. В Breakout нет искусственного интеллекта. Игрок сражается с холодными, твердыми кирпичами. Однако искусственный интеллект игры часто очень прост и следует простым (или сложным) правилам, которые обеспечивают псевдоинтеллектуальные результаты.

По коням, пишем на Python

Для этого проекта вам потребуется установить и запустить среду Python. Прочитайте нашу статью о том, как это сделать.

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

Класс Tk () используется для создания окна, в котором отображается графика. Создается только окно, но без содержимого. Для отображения содержимого создается холст, который является отображаемой частью окна. Здесь разрабатывается игра. Холст обрабатывается классом Canvas(), поэтому вам нужно создать свой собственный объект из этого класса и затем манипулировать им.

Если скорость платформы не будет принудительно ограничена, компьютер сочтет ее слишком быстрой и немедленно переместится на другую сторону. Это искусственно ограничивает время в пути и поэтому требует временной секции. Это также является стандартом.

Последнее, что нужно в мире, — это рандомизировать стартовые позиции мяча и платформ, чтобы сделать игру более интересной. Раздел random позаботится об этом — он генерирует случайные числа и помогает перетасовать данные.

Запишите все это в виде кода Python.

Мы подключили все необходимые библиотеки, построили и настроили игровое поле. Далее мы разберемся с классами.

  Genshin Impact. Как повысить ранг в мангалибе?

Шарик

Во-первых, давайте скажем словами, что вам нужно для мяча. Он должен уметь:.

  • задавать своё начальное положение и направление движение;
  • понимать, когда он коснулся платформы;
  • рисовать сам себя и понимать, когда нужно отрисовать себя в новом положении (например, после отскока от стены).

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

Платформа

Сделайте то же самое для платформы. Сначала опишите его поведение словами, а затем переведите его в код. Поэтому платформа должна уметь это делать.

  • двигаться влево или вправо в зависимости от нажатой стрелки;
  • понимать, когда игра началась и можно двигаться.

А вот как это должно выглядеть в виде кода:.

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

Все, что вам нужно от счета (кроме создателя) — это правильно реагировать на нажатия платформы, увеличивать количество очков и выводить их на экран.

Все готово для создания самой игры. Мы уже сделали необходимые приготовления для всех элементов, и все, что нам остается сделать, это создать конкретные объекты мяч, платформа и счет и сказать им, что делать и в каком порядке.

Смысл игры заключается в том, чтобы не потерять мяч. Пока этого не происходит, все работает, но как только мяч падает, программа должна быть остановлена с сообщением об окончании игры.

Давайте посмотрим, насколько лаконичен сам код игры.

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

Архитектура игры

В игре приходится обрабатывать большое количество информации и выполнять практически одни и те же функции на многих объектах. Breakout — небольшая игра, но попытка управлять всем в одном файле может быть очень утомительной. Поэтому я решил создать структуру и архитектуру файлов, которая подходит и для гораздо более крупных игр.

Структура папок и файлов

Pipfile и Pipfile.Lock — это современные способы управления Python. Папка images содержит изображения, используемые в игре (в версиях только фоновые изображения); папка Sound_effects содержит небольшие аудиоклипы (можно догадаться), используемые в качестве звуковых эффектов; папка Pipfile.Lock содержит изображения, используемые в игре.

Файлы ball.py, paddle.py и brick.py содержат код для каждого из этих объектов Breakout. Более подробно они будут рассмотрены в следующей части семинара. Файл text_object.py содержит код для отображения текста на экране, а файл background.py содержит логику для игры Breakout.

Однако есть несколько разделов, которые создают произвольные «скелеты» для общих целей. Определенные в них классы могут быть использованы в других играх на базе PYGAME.

Класс GameObject

GameObjects — это визуальные объекты, которые умеют рендерить себя, сохранять границы и перемещаться. В Pygame также есть класс sprite, который играет похожую роль, но на этом семинаре мы хотим показать, как все работает, а не полагаться на готовую магию. Вот как выглядит класс GameObject.

GameObject разработан как базовый класс для других объектов. Он напрямую раскрывает многие свойства своего прямоугольного «я», а функция Update () перемещает объект в соответствии с его текущей скоростью. Метод Draw () ничего не делает. Он должен быть обойден подклассом.

Класс Game

Класс Game является ядром игры. Он запускается в главном цикле. Он имеет множество полезных функций. Давайте проанализируем методы.

Метод __init __() запускает сам Pygame, систему шрифтов и звуковой микшер. Поскольку каждый Pygame не использует все компоненты, требуется три разных вызова для управления тем, какие подсистемы используются, и только соответствующие параметры могут быть инициализированы. Этот метод создает фоновое изображение, основную поверхность (со всем нарисованным) и правый фрейм игрового таймера.

  Как смотреть с друзьями через Rave. Как пользоваться приложением rave

Элемент self.objects хранит все объекты игры, которые отрисовываются и обновляются. Различные операторы ведут список функций обработки, которые должны быть выполнены для определенных событий.

Методы update() и draw() очень просты. Они обходят все управляемые объекты воспроизведения и вызывают соответствующий метод. Если два объекта накладываются друг на друга на экране, порядок списка объектов определяет, какой из них изображен первым, остальные частично или полностью перекрывают его.

Метод handle_events () прослушивает события, создаваемые pygame, такие как события клавиш и мыши. Для каждого события он приглашает все функции обработки, которые должны обрабатывать каждый тип события.

Наконец, метод run () выполняет главный цикл. Он выполняется до тех пор, пока элемент Game_over не станет истинным. Каждая итерация отображает фоновое изображение и вызывает вызовы handle_events (), update () и draw ().

Заключение

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

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

Метод handle_events () прослушивает события, создаваемые pygame, такие как события клавиш и мыши. Для каждого события он приглашает все функции обработки, которые должны обрабатывать каждый тип события.

Как создать игру на Python – простой пример с кодом для начинающих

Python является самым гибким языком и присутствует практически во всех областях веб-разработки, машинного обучения, искусственного интеллекта, GUI-приложений и разработки игр.

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

Pygame — это многоплатформенная библиотека, используемая для разработки видеоигр. Она включает графическую библиотеку и аудио. Он был разработан Питом Шиннерсом для замены Pysdl.

Простой пример Pygame

Ниже приведен пример, который создает простое окно Pygame.

Вся графика отображается в окне Pygame.

Понять основной аннуитет вышеуказанной программы.

Import Pygame — это раздел, в котором могут быть обработаны все функции Pygame.

pygame.init () — используется для инициализации всех необходимых блоков pygame.

pygame.display.set_mode ((width, height)) — используется для изменения размера окна. Возвращает объект поверхности. Объект поверхности используется для выполнения графических функций.

pygame.event.get() — создает пустой хвост. Если его не вызвать, сообщения в окне начинают накапливаться, и игра перестает отвечать на запросы операционной системы.

pygame.quit — используется для закрытия события при нажатии на крестик в углу окна.

pygame.display.flip () — используется для отображения обновлений в игре. Если изменения внесены, необходимо вызвать display.flip ().

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

Давайте разберемся со следующим примером рисования фигур на экране.

Нарисуйте фигуру на экране

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

Пример – разработка игры Snake с использованием Pygame

Змея для разработки игр

Когда змея коснется себя, игра закончится и появится следующее сообщение.

Его можно воспроизвести снова, нажав кнопку OK. Вы можете увидеть эффект на терминале Pycharm (используя IDE Pycharm, можно использовать любую IDE Python).

Игровой код

Скопируйте и вставьте приведенный выше код в вашу IDE и наслаждайтесь. Чтобы понять концепцию Pygame, посмотрите полный семинар по Pygame.

Оцените статью
Бизнес блог