# pygame
The pygame.mixer module helps control the music used in pygame programs. As of now, there are 15 different functions for the mixer module.
# Initializing
Similar to how you have to initialize pygame with pygame.init() , you must initialize pygame.mixer as well.
By using the first option, we initialize the module using the default values. You can though, override these default options. By using the second option, we can initialize the module using the values we manually put in ourselves. Standard values:
Создаём «Змейку» — первую игру на Python и Pygame
Учимся программировать через разработку игр. Сегодня напишем знакомую всем «Змейку» — вспомним правила игры и реализуем их на Python.


Иллюстрация: Оля Ежак для Skillbox Media

Pygame — популярная библиотека для создания игр под различные устройства на Windows, macOS, Linux или Android. Она помогает разработчику не только описать геймплей, но и работать с клавиатурой, мышью, акселерометром, звуком и видео.
Первая версия Pygame была представлена Питом Шиннерсом в октябре 2000 года. За 22 года вокруг библиотеки сложилось большое комьюнити, а о работе с ней написано несколько десятков книг. Последняя стабильная версия на июль 2022 года — 2.1.2.
Давайте разберёмся в том, как устроена Pygame, и напишем свою первую игру — классическую «Змейку» на Python, которую студенты часто берут для курсовой работы по программированию.
Устанавливаем Pygame и разбираемся
Pygame — не самостоятельная библиотека. На самом деле это обёртка для библиотеки SDL, Simple DirectMedia Layer. Именно SDL позволяет задействовать любые внешние устройства — например, мышь или клавиатуру. А Pygame делает работу с ними удобной для Python-разработчика.
Установить Pygame просто. Для этого воспользуемся терминалом или командной строкой и командой pip:
Если во время установки возникают ошибки, то можно воспользоваться официальной документацией. В ней описаны особенности установки на различные системы, а также пути решения распространённых проблем.
Инициализация и модули
Библиотека Pygame состоит из конструкций на языке Python и включает в себя несколько модулей. Модули позволяют получить доступ к определённому устройству и содержат методы для работы с ним. Например, модуль display позволяет работать с экраном, а joystick — считывать движения с джойстика.
После того как вы импортировали Pygame, необходимо инициировать библиотеку с помощью команды pygame.int(). Это поможет нам использовать любые методы любых функций, включённых в библиотеку модулей. Без инициализации код может потерять кросс-платформенность и не запускаться в другой системе.
Displays и Surfaces: рисуем игровое поле
Помимо модулей, Pygame включает несколько классов Python, которые работают с концепциями, не зависящими от аппаратного обеспечения. Одна из таких концепций — Surface. Surface, можно сказать, определяет прямоугольную область, на которой можно рисовать. Если переносить на практику, то этот класс позволяет создать игровое поле. Он широко используется при работе с Pygame, и мы тоже поработаем с ним при создании «Змейки».
В Pygame вся информация выводится на игровое поле, которому в коде соответствует класс display. Игровое поле может быть полноэкранным или занимать часть экрана. Display создаётся с помощью функции .set_mode(), которая возвращает Surface, представляющий видимую часть окна. Именно эту область вы будете передавать в функции рисования, такие как pygame.draw.circle(), а содержимое этого Surface будет выводиться на дисплей при вызове pygame.display.flip(). Звучит сложно, но на практике будет проще. Оба класса мы будем использовать при создании «Змейки».
Изображения и прямоугольники
Работать с изображениями в Pygame можно двумя способами: создавать их с нуля на экране или использовать изображения с диска. И тот и другой тип можно перезаписывать, загружать и сохранять в различных форматах — например, в PNG и JPG.
Изображения — не самостоятельные компоненты: они загружаются в объекты Surface, которые можно изменять и выводить на дисплеи различными способами.
Выше мы писали, что объекты Surface представлены прямоугольниками, подобно многим другим объектам в Pygame, в том числе изображениям и окнам. Прямоугольники используются настолько активно, что существует даже специальный класс Rect, предназначенный для работы только с ними. Объекты Rect используются для различных задач: создания фигур игрока и врагов, управления взаимодействиями между ними и так далее.
Продумываем и описываем правила игры
Перед тем как начать писать код, необходимо подумать о том, какие правила мы должны учитывать при создании игры. Давайте составим для «Змейки» базовые правила, которые влияют на геймплей:
- цель игры — набрать как можно больше очков за счёт увеличения длины змейки:
- при поглощении специального объекта на игровом экране длина змейки увеличивается на один блок;
- игрок начинает движение с левой стороны экрана;
- игрок может двигаться влево, вправо, вверх или вниз;
- игрок не может двигаться за пределы экрана, при столкновении с границами игра заканчивается;
- игра заканчивается, когда змейка врезается сама в себя;
- ещё игра заканчивается, когда пользователь закрывает окно.
Создаём игру с нуля
Несмотря на то что «Змейка» — простая игра, нам предстоит написать довольно много кода. Мы разбили этапы создания игры на последовательные шаги, каждый из которых реализует отдельную часть геймплея.
Шаг 0
Запускаем Python
Писать код на Python лучше всего в специальном редакторе. Есть несколько вариантов:
- Воспользоваться специализированными IDE: IntelliJ IDEA или Visual Studio Code. Мы рекомендуем именно этот способ — например, весь код для этой статьи мы писали в Visual Studio Code.
- Использовать терминал на macOS или Linux или воспользоваться командной строкой в Windows. Для этого предварительно потребуется установить Python в систему. Мы подробно писали об этом в отдельном материале.
После установки и запуска Python загружаем библиотеку Pygame:
Теперь у нас всё готово к работе над игрой. Для дальнейшего написания кода необходимо создать один пустой Python-файл.
Шаг 1
Создаём игровое поле
Чтобы создать окно с игрой с помощью Pygame, необходимо использовать функцию display.set_mode() и передать в неё желаемый размер окна в пикселях. Также необходимо использовать методы init() и quit() для инициализации библиотеки в начале кода и её деинициализации в конце кода.
Метод update() используется для обновления содержимого экрана. Существует ещё метод flip(), который работает аналогично update(). Разница в том, что метод update() обновляет только внесённые изменения, а метод flip() перерисовывает экран целиком. Но если в метод update() не передавать никакие параметры, то также обновится весь экран.
Если сейчас запустить этот код, то экран игры сразу же закроется. Это связано с тем, что код сразу переходит к следующей строчке pygame.quit(), отключающей библиотеку и наше игровое поле. Чтобы избежать этого, необходимо воспользоваться циклом while — он не позволит игровому экрану закрыться:
Кроме этого, мы добавили в код ещё две сущности: название игры и функцию для отслеживания игровых событий. Чтобы у окна с игрой появилось название, мы используем pygame.display.set_caption(») (название пишем в кавычках). А функция event.get() возвращает в терминал все события, которые происходят с игрой.
Запустим код и посмотрим, что получилось:

Теперь игровое окно не закрывается само по себе. Однако и закрыть его мы тоже не сможем — если нажать на кнопку «Выход», ничего не произойдёт. Исправляем это с помощью кода: добавляем событие QUIT, закрывающее окно.
Теперь кнопка выхода работает как надо. Если нажать на неё, то окно с игрой закроется.
Шаг 2
Создаём змейку
Для начала инициализируем переменные, которые задают цвет. Мы будем использовать их, чтобы присвоить цвет экрану, самой змейке и еде. В Pygame используется стандартная RGB-схема, то есть любой цвет представляет собой комбинацию красного, зелёного и синего цветов, интенсивность которых мы можем менять.
Наша змейка — прямоугольник, поэтому мы воспользуемся функцией создания прямоугольников draw.rect(). Она позволяет задать размер и цвет прямоугольника.
Запустим код и посмотрим на результат.

Всё получилось. Ближе к центру экрана появился синий квадрат, который и будет нашей змейкой.
Шаг 3
Описываем движения змейки
Управлять перемещением змейки можно с помощью специального класса Pygame KEYDOWN. Класс позволяет использовать четыре стандартных события, получая их с клавиавтуры: K_UP, K_DOWN, K_LEFT и K_RIGHT — они соответствуют движениям змейки вверх, вниз, влево и вправо. Срабатывание любого события из класса KEYDOWN приводит к изменению положения змейки. Зададим шаг этого движения в 10 пикселей.
Кроме того, мы должны создать две переменные для хранения значений координат первой клетки нашей змейки по осям x и y. Назовём их x1_change и y1_change.
Теперь змейка двигается по игровому полю:
Шаг 4
Учитываем препятствия — границы игрового поля
Если змейка попадает на границу экрана, то игрок терпит поражение, а игра заканчивается. Чтобы закодить это правило, можно воспользоваться оператором if, который определяет координаты x и y для змейки и анализирует, выходят ли они за границы игрового поля. Добавим необходимый код.
Теперь, если змейка достигнет края экрана, игра закончится, а на дисплее появится сообщение о проигрыше:
Шаг 5
Добавляем еду для змейки
Теперь добавим «еду». Используем библиотеку random, чтобы она появлялась в случайном месте на игровом поле. Когда наша змейка будет проходить через еду, то её длина будет увеличиваться. Это мы добавим на следующем шаге. Кроме того, дадим возможность игроку выйти из игры или начать игру заново после проигрыша.
Теперь при запуске игры кроме самой змейки будет показана еда. В нашем случае — в виде чёрного квадрата.

А если выполнить условие для завершения игры, то появится сообщение с предложением выйти из игры или начать её заново:
Шаг 6
Увеличиваем длину змейки
Дополним наш код, чтобы длина змейки увеличивалась при поглощении еды. Для этого нам понадобится список, в котором будет храниться текущая длина змейки. Учтём ещё важный момент из правил: при столкновении головы змейки с её телом игра завершается.
Дополнительно мы изменили цвет игрового поля и змейки, увеличив их контрастность.
Шаг 7
Добавляем отображение счёта
Добавим отображение счёта текущей игры. Для этого создадим функцию Your_score. Она будет отображать длину змейки, вычитая из неё 1 (ведь 1 — это начальный размер змейки, и это не является достижением игрока).
И отдельно пропишем правило определения длины змейки, вычитая из текущей длины змейки единицу.
Теперь на игровом поле будет отображаться текущий счёт:
Можно считать, что наша работа над «Змейкой» закончена. Мы полностью реализовали геймплей, который запланировали на старте работы.
Итоговый код
Наш код полностью и без комментариев:
Что дальше?
Узнать об особенностях работы с Pygame и возможностях библиотеки можно в официальной документации. Углубиться в разработку и попробовать другие игры можно благодаря специализированным книгам:
How to install Pygame using PIP or an IDE

We will see in this tutorial how to install the pygame module on Windows or MAC using pip or the PyCharm editor.
Introduction
When you’re new to Python programming, the best way to improve your skills is to create mini-games. This allows you to have fun while learning the basics of programming. To develop a game in Python, there are several modules that make it easier to work with graphics (such as rectangles, circles, images, etc…) and sounds. Pygame is one of them.
Pygame is a Python wrapper for the SDL (Simple DirectMedia Layer) library. SDL provides cross-platform access to the underlying multimedia hardware components of your system, such as sound, video, mouse, keyboard and joystick. You can therefore program games and Python programs with Pygame that are supported on different platforms.
By default, Pygame is not installed on the Python programming environment. We will therefore see in this guide the best instructions for installing it on your system.
If you wish to deepen your knowledge in the Pygame Module, I invite you to read this book :
As an Amazon Associate I earn from qualifying purchases. If you purchase a product by using a link on this page, I’ll earn a small commission at no extra cost to you

How to install Pygame for Windows
Install Python
To run the Pygame module, we must have a version of Python on our machine. If you haven’t already done so, it is available here :

Download Latest Version of Python
Click on the version of Python you are interested in and press download. You can install the latest stable version of Python.
Once the download is complete, press the run button. Check the box ”Add Python 3.5 to PATH”.
Make sure the checkboxes for “Optional features” are checked. For the rest, you can leave them as they are. To finalize the installation, press the install button for your computer to complete the installation.
Install Module Pygame
You can get a version of Pygame via this link :
Take the latest version available and click on the link to download the .whl file to your computer.
pygame‑1.9.6‑cp39‑cp39‑win32.whl
You can choose between a 32bits or 64bits version (in this example, we will start with the win32 version).
To install the previously downloaded Pygame module, we need to access the Windows command line.
To access it, right-click on the started menu and click on Execute. Then type on the text box “cmd“.
Then go to the directory where you installed the Pygame module (by default in the Downloads folder).
Once you are in the right folder, type the following command prompt:
To check that the installation has worked, type the following command prompt:
If you do not see any error messages, the installation went well.
How to install Pygame for OS X
The first step to do is to access the command line. To do so, click on the Spotlight icon and type “terminal” to find it.
We will install XCode (which is an Apple tool for creating Mac and iOS applications. Once the installation is complete, type the following command prompt:
Install Homebrew
Homebrew is a package manager for Mac that simplifies the installation of many different software or packages such as Git, Python or Pygame. Homebrew allows you to avoid possible security issues related to the use of the sudo command to install software like Node.
To install it, copy and paste this on the command prompt:
You will also need to install Homebrew Cask :
Install pygame and these Requirements
To install pygame, we must first install all the pygame dependencies. To do this, please run the following commands one at a time:
As you can see, we have installed python 3 and the pygame module. To check that the installation has been successful, type the following commands:
If you don’t get any error messages, it means that the installation was successful.
How to install Pygame using PyCharm IDE
PyCharm is an integrated development environment (IDE) used in computer programming, specifically for the Python language. PyCharm is cross-platform, with Windows, macOS and Linux versions.
To start opening Pycharm and create a new python project. Then create a python file by right-clicking on the project then New then Python file. Name your python file as you wish.
In your python file, type the following line :
You will see that the pygame is underlined in red. To install pygame, move the mouse over the red underlined area and click on “install package pygame“.
Wait for Pycharm to install pygame and that’s it !

PyCharm IDE : How to install pygame module
Conclusion
In this tutorial, we have seen how to install pygame on Windows, OS X and using an IDE like PyCharm. Now it’s up to you to create your first 2D mini-game!
Here is an example of what you can do with Pygame :
Don’t hesitate to tell me in the comments if you have problems with the pygame installation. And also, I would be happy to see your future projects on pygame!
I’m a data scientist. Passionate about new technologies and programming I created this website mainly for people who want to learn more about data science and programming 🙂
Как установить pygame и создать шаблон для разработки игр в Python 3
Библиотека pygame — это модуль с открытым исходным кодом для языка программирования Python, специально предназначенный для того, чтобы помочь вам создавать игры и другие мультимедийные приложения. Созданная на основе чрезвычайно переносимой библиотеки для разработки SDL (Simple DirectMedia Layer), pygame может работать на многих платформах и операционных системах.
Используя модуль pygame, вы можете управлять логикой и графикой ваших игр, не беспокоясь о сложностях бэкэнда, необходимых для работы с видео и аудио.
В этом руководстве сначала будет рассказано об установке pygame в среду программирования Python, а затем будет рассказано о создании шаблона для разработки игр с pygame и Python 3.
Предпосылки
Чтобы иметь возможность использовать это руководство, убедитесь, что у вас уже установлен Python 3 и среда программирования на вашем https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a- локальная среда программирования для python-3 [локальный компьютер] или https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming- среда-на-на-убунту-16-04-сервер [сервер].
Вы также должны быть знакомы со следующими концепциями программирования Python:
После настройки среды программирования и знакомства с программированием Python вы готовы начать работу с pygame.
Установка Pygame
Давайте начнем с активации нашей среды программирования Python 3:
С этим активированным, вы можете установить pygame с pip:
После запуска этой команды вы должны увидеть вывод, который выглядит примерно так:
Если вы установили pygame в систему с доступным видео и аудио, вы можете проверить свою установку, выполнив следующую команду, которая запустит пробную игру, демонстрирующую, что pygame может делать с графикой и звуком:
Если вы не хотите открывать образец, или если у вас нет AV как часть вашей настройки, вы также можете войти в интерактивную консоль Python, чтобы убедиться, что вы можете импортировать модуль pygame. Сначала введите команду + python для запуска консоли:
Затем в консоли вы можете импортировать модуль:
Если вы не получите ошибок при нажатии клавиши + ENTER + после команды, вы будете знать, что pygame была успешно установлена. Вы можете выйти из интерактивной консоли Python с помощью команды + quit () + .
Если у вас возникли проблемы с установкой в командной строке, вы можете ознакомиться с GettingStarted wiki pygame.
На более поздних этапах мы будем предполагать использование монитора для отображения графического интерфейса пользователя как часть этого руководства для проверки нашего кода.
Импорт пигмеев
Чтобы познакомиться с pygame, давайте создадим файл с именем + our_game.py + , который мы можем создать с помощью текстового редактора nano, например:
При запуске проекта в Pygame вы начнете с оператора + import + , используемого для importing модулей. , который вы можете добавить вверху вашего файла:
Мы также можем при желании добавить еще один оператор импорта ниже первой строки, чтобы добавить некоторые константы и функции pygame в https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python- 3 # using-from — импортировать [глобальное пространство имен] вашего файла:
С pygame, импортированным в наш программный файл, мы готовы использовать его для создания игрового шаблона.
Инициализация Pygame
Здесь мы инициализируем функциональные возможности pygame с помощью функции + init () + , что сокращенно означает «initialize».
Функция + init () + автоматически запустит все модули pygame, которые вам нужно инициализировать.
Вы также можете инициализировать каждый из модулей Pygame по отдельности, например:
Функция + init () + вернет вам tuple, если хотите. Этот кортеж покажет успешную и неудачную инициализацию. Мы можем сделать это как для общего вызова + init () + , так и для инициализации определенных модулей (что покажет нам, доступны ли эти модули):
Если мы запустим код выше, мы получим вывод, подобный следующему:
В этом случае + i + variable вернул кортеж + (6, 0) + `, который показывает, что было 6 успешных инициализаций Pygame и 0 сбоев. Переменная `+ f + вернула + None + , указывая, что модуль недоступен в этой конкретной среде.
Настройка поверхности дисплея
Отсюда нам нужно настроить поверхность отображения игры. Мы будем использовать + pygame.display.set_mode () + , чтобы инициализировать окно или экран для отображения и передать его в переменную. В функцию мы передадим аргумент разрешения экрана, представляющий собой пару чисел, представляющих ширину и высоту в кортеже. Давайте добавим эту функцию в нашу программу:
Мы передали кортеж + (800, 600) + в качестве аргумента функции + set_mode () + , обозначая разрешение ширины (800 пикселей) и высоты (600 пикселей). Обратите внимание, что кортеж содержится в круглых скобках функции, поэтому в функции выше есть двойные скобки.
Скорее всего, вы будете использовать integers для разрешения своей игры, поэтому вам, вероятно, захочется назначить эти числа в переменные, а не использовать числа снова и снова. Это может упростить задачу, когда вам нужно изменить свою программу, поскольку вам нужно будет только изменить то, что передается переменным.
Мы будем использовать переменную + display_width для ширины отображения вашей игры и` + display height` для высоты, и передадим эти переменные в функцию + set_mode () + :
На этом этапе игровая поверхность настраивается с разрешением по ширине и высоте.
Обновление дисплея
Далее нам потребуется использовать одну из двух доступных функций, чтобы обновить отображение игровой поверхности.
Анимации — это, как правило, изменения между кадрами с течением времени. Когда вы думаете об анимации, вы можете подумать о flip book, так как они состоят из серии изображений, которые постепенно меняются от одной страницы к следующей. Эти страницы дают имитацию движения, когда они быстро перелистываются, поскольку содержимое страницы кажется движущимся. В компьютерных играх используются рамки, а не страницы.
Из-за концепции перелистывания страниц или фреймов одна из функций, которые можно использовать для обновления отображения игровой поверхности, называется + flip () + и может быть вызвана в нашем файле выше, например:
Функция + flip () + обновляет всю поверхность экрана на экране.
Чаще всего вместо + flip () + используется функция + update () + , поскольку она обновляет только части экрана, а не всю область, экономя память.
Давайте добавим функцию + update () + в конец файла + our_game.py + :
На этом этапе вы можете запустить программу без каких-либо ошибок, но поверхность дисплея просто откроется и быстро закроется.
Создание игрового цикла
После импорта и инициализации pygame, отображения и обновления игровой поверхности мы можем начать работу над основным игровым циклом.
Мы будем создавать https://www.digitalocean.com/community/tutorials/how-to-construct- while-loops-in-python-3 [ + while + loop], который будет запускать игру. Цикл будет вызывать Boolean значение + True + , означая, что цикл будет зацикливаться вечно, если только он не будет нарушена.
В этом основном игровом цикле нашей программы мы создадим https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3 [ + for + loop] для перебирать пользовательские события в очереди событий, которые будут вызываться функцией + pygame.event.get () + .
На данный момент у нас ничего нет в цикле + for + , но мы можем добавить оператор + print () + , чтобы показать, что код ведет себя так, как мы ожидаем. Мы передадим события внутри итерации в оператор как + print (event) + .
Давайте добавим эти два цикла и оператор + print () + в наш программный файл: