Pygame quit что это

Pygame quit что это

The pygame package represents the top-level package for others to use. Pygame itself is broken into many submodules, but this does not affect programs that use pygame.

When you import pygame all available pygame submodules are automatically imported. Be aware that some of the pygame modules are considered optional, and may not be available. In that case, pygame will provide a placeholder object instead of the module, which can be used to test for availability.

Initialize all imported pygame modules. No exceptions will be raised if a module fails, but the total number if successful and failed inits will be returned as a tuple. You can always initialize individual modules manually, but pygame.init() initialize all imported pygame modules is a convenient way to get everything started. The init() functions for individual modules will raise exceptions when they fail.

You may want to initialize the different modules separately to speed up your program or to not use modules your game does not require.

It is safe to call this init() more than once as repeated calls will have no effect. This is true even if you have pygame.quit() all the modules.

Uninitialize all pygame modules that have previously been initialized. When the Python interpreter shuts down, this method is called regardless, so your program should not need it, except when it wants to terminate its pygame resources and continue. It is safe to call this function more than once as repeated calls have no effect.

Calling pygame.quit() uninitialize all pygame modules will not exit your program. Consider letting your program end in the same way a normal Python program will end.

Returns True if pygame is currently initialized.

This exception is raised whenever a pygame or SDL operation fails. You can catch any anticipated problems and deal with the error. The exception is always raised with a descriptive message about the problem.

Derived from the RuntimeError exception, which can also be used to catch these raised errors.

SDL maintains an internal error message. This message will usually be given to you when pygame.error() standard pygame exception is raised, so this function will rarely be needed.

SDL maintains an internal error message. This message will usually be given to you when pygame.error() standard pygame exception is raised, so this function will rarely be needed.

Returns the three version numbers of the SDL library. This version is built at compile time. It can be used to detect which features may or may not be available through pygame.

Returns the byte order of the SDL library. It returns 1234 for little endian byte order and 4321 for big endian byte order.

When pygame.quit() uninitialize all pygame modules is called, all registered quit functions are called. Pygame modules do this automatically when they are initializing, so this function will rarely be needed.

This function is used in encoding file paths. Keyword arguments are supported.

New in pygame 1.9.2: (primarily for use in unit tests)

New in pygame 1.9.2: (primarily for use in unit tests)

This module is automatically imported into the pygame package and can be used to check which version of pygame has been imported.

This is the version represented as a string. It can contain a micro release number as well, e.g. ‘1.5.2’

This version information can easily be compared with other version numbers of the same format. An example of checking pygame version numbers would look like this:

The Mercurial node identifier of the repository checkout from which this package was built. If the identifier ends with a plus sign ‘+’ then the package contains uncommitted changes. Please include this revision number in bug reports, especially for non-release pygame builds.

This is the SDL library version represented as an extended tuple. It also has attributes ‘major’, ‘minor’ & ‘patch’ that can be accessed like this:

printing the whole thing returns a string like this:

Setting Environment Variables

Some aspects of pygame’s behaviour can be controlled by setting environment variables, they cover a wide range of the library’s functionality. Some of the variables are from pygame itself, while others come from the underlying C SDL library that pygame uses.

In python, environment variables are usually set in code like this:

Or to preserve users ability to override the variable:

If the variable is more useful for users of an app to set than the developer then they can set it like this:

Windows:

Linux/Mac:

For some variables they need to be set before initialising pygame, some must be set before even importing pygame, and others can simply be set right before the area of code they control is run.

Below is a list of environment variables, their settable values, and a brief description of what they do.

Pygame Environment Variables

These variables are defined by pygame itself.

This makes pygame use the SDL2 blitter for all alpha blending. The SDL2 blitter is sometimes faster than the default blitter but uses a different formula so the final colours may differ. Must be set before pygame.init() initialize all imported pygame modules is called.

This stops the welcome message popping up in the console that tells you which version of python, pygame & SDL you are using. Must be set before importing pygame.

This switches the pygame.font module to a pure freetype implementation that bypasses SDL_ttf. See the font module for why you might want to do this. Must be set before importing pygame.

In pygame 2.0.3, backends can be set programmatically instead, and the old OpenCV backend has been replaced with one on top of «opencv-python,» rather than the old «highgui» OpenCV port. Also, there is a new native Windows backend available.

SDL Environment Variables

These variables are defined by SDL.

For documentation on the environment variables available in pygame 1 try here. For Pygame 2, some selected environment variables are listed below.

By default pygame apps disable screensavers while they are running. Setting this environment variable allows users or developers to change that and make screensavers run again.

By default SDL tries to disable the X11 compositor for all pygame apps. This is usually a good thing as it’s faster, however if you have an app which doesn’t update every frame and are using linux you may want to disable this bypass. The bypass has reported problems on KDE linux. This variable is only used on x11/linux platforms.

Источник

Основы PyGame¶

Pygame — библиотека, предназначенная для разработки мультимедийных приложений с графическим интерфейсом, например игр.

Документация, обучающие материалы и дополнительная информация доступна разработчикам на сайте проекта: https://www.pygame.org/docs/

Начало работы¶

Начнем знакомство с библиотекой непосредственно с разбора примера простого приложения:

В первую очередь импортируем модуль pygame в наш файл с исходным кодом:

Затем вызываем функцию init() для подготовки модулей pygame к работе:

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

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

Рисование геометрических фигур¶

Разместим в окне нашего приложения прямоугольник. Прямоугольные объекты представлены типом Rect :

Для создания объекта этого типа нам необходимо указать координаты левого верхнего угла прямоугольника и длины его сторон:

Обратите внимание, что начало координат (0, 0) находится в левом верхнем углу окна.

Для этого передадим в функцию в качестве аргументов поверхность, на которой мы размещаем прямоугольник, его цвет, сам прямоугольник и толщину линии — стороны прямоугольника. Если толщина равна нулю прямоугольник закрашивается сплошным цветом.

Рассмотрим готовый пример:

Прочие функции для рисования графических фигур¶

pygame.draw. lines ( Surface, color, closed, pointlist, width=1 ) ¶

pygame.draw. circle ( Surface, color, pos, radius, width=0 ) ¶

pygame.draw. ellipse ( Surface, color, Rect, width=0 ) ¶

pygame.draw. polygon ( Surface, color, pointlist, width=0 ) ¶

Цвета в библиотеке pygame представлены в соответствии с моделью RGB: https://ru.wikipedia.org/wiki/RGB

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

Закрасим основной экран c помощью метода fill() :

Текст и шрифты¶

Чтобы создать объект Font на основе имеющегося в системе шрифта вызовем следующую функцию:

Список имеющихся в системе шрифтов можно получить с помощью функции get_fonts() :

Далее, с помощью метода render() нашего объекта типа Font получаем изображение с текстом, которое передаем на вход методу blit() для отрисовке на нашем основном экране:

Текст размещается в на основном экране по координатам (50, 50)

Задания¶

1. Используя функции для работы с графикой библиотеки pygame, нарисуйте дом с квадратным основанием и треугольной крышей.

2. Используя функции для работы с графикой библиотеки pygame, нарисуйте белый флаг с олимпийскими кольцами.

3. Разработайте программу, которая разбивает основное игровое окно на клетки заданного размера.

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

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

Источник

Библиотека Pygame / Часть 1. Введение

Это первая часть серии руководств « Разработка игр с помощью Pygame ». Она предназначена для программистов начального и среднего уровней, которые заинтересованы в создании игр и улучшении собственных навыков кодирования на Python.

Что такое Pygame?

Pygame — это «игровая библиотека», набор инструментов, помогающих программистам создавать игры. К ним относятся:

Графика и анимация

Звук (включая музыку)

Управление (мышь, клавиатура, геймпад и так далее)

Игровой цикл

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

В каждом кадре происходит масса вещей, но их можно разбить на три категории:

1.Обработка ввода (события)

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

2.Обновление игры

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

3.Рендеринг (прорисовка)

В этом шаге все выводится на экран: фоны, персонажи, меню. Все, что игрок должен видеть, появляется на экране в нужном месте.

Время

Еще один важный аспект игрового цикла — скорость его работы. Многие наверняка знакомы с термином FPS, который расшифровывается как Frames Per Second (или кадры в секунду). Он указывает на то, сколько раз цикл должен повториться за одну секунду. Это важно, чтобы игра не была слишком медленной или быстрой. Важно и то, чтобы игра не работала с разной скоростью на разных ПК. Если персонажу необходимо 10 секунд на то, чтобы пересечь экран, эти 10 секунд должны быть неизменными для всех компьютеров.

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

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

В начале программы нужно импортировать необходимые библиотеки и задать базовые переменные настроек игры:

Дальше необходимо открыть окно игры:

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

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

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

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

Pygame quit что это. image loader. Pygame quit что это фото. Pygame quit что это-image loader. картинка Pygame quit что это. картинка image loader

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

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

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

А после этого — заполнить весь экран.

Но этого недостаточно. Дисплей компьютера работает не так. Изменить пиксель — значит передать команду видеокарте, чтобы она передала соответствующую команду экрану. По компьютерным меркам это очень медленный процесс. Если нужно нарисовать на экране много всего, это займет много времени. Исправить это можно оригинальным способом, который называется — двойная буферизация. Звучит необычно, но вот что это такое.

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

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

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

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

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

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

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

Контроль FPS

Пока что нечего поместить в раздел Update (обновление), но нужно убедиться, что настройка FPS контролирует скорость игры. Это можно сделать следующим образом:

Команда tick() просит pygame определить, сколько занимает цикл, а затем сделать паузу, чтобы цикл (целый кадр) длился нужно время. Если задать значение FPS 30, это значит, что длина одного кадра — 1/30, то есть 0,03 секунды. Если цикл кода (обновление, рендеринг и прочее) занимает 0,01 секунды, тогда pygame сделает паузу на 0,02 секунды.

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

В следующем руководстве этот шаблон будет использован как отправная точка для изучения процесса отрисовки объектов на экране и их движения.

Источник

Библиотека Pygame / Часть 1. Введение

Это первая часть серии руководств «Разработка игр с помощью Pygame». Она предназначена для программистов начального и среднего уровней, которые заинтересованы в создании игр и улучшении собственных навыков кодирования на Python.

Код в уроках был написан на Python 3.7 и Pygame 1.9.6

Что такое Pygame?

Pygame — это «игровая библиотека», набор инструментов, помогающих программистам создавать игры. К ним относятся:

Игровой цикл

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

В каждом кадре происходит масса вещей, но их можно разбить на три категории:

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

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

В этом шаге все выводится на экран: фоны, персонажи, меню. Все, что игрок должен видеть, появляется на экране в нужном месте.

Время

Еще один важный аспект игрового цикла — скорость его работы. Многие наверняка знакомы с термином FPS, который расшифровывается как Frames Per Second (или кадры в секунду). Он указывает на то, сколько раз цикл должен повториться за одну секунду. Это важно, чтобы игра не была слишком медленной или быстрой. Важно и то, чтобы игра не работала с разной скоростью на разных ПК. Если персонажу необходимо 10 секунд на то, чтобы пересечь экран, эти 10 секунд должны быть неизменными для всех компьютеров.

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

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

В начале программы нужно импортировать необходимые библиотеки и задать базовые переменные настроек игры:

Дальше необходимо открыть окно игры:

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

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

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

Экраны компьютеров сделаны из пикселей, каждый из которых содержит 3 элемента: красный, зеленый и синий. Цвет пикселя определяется тем, как горит каждый из элементов:
Pygame quit что это. tablica cvetov rgb. Pygame quit что это фото. Pygame quit что это-tablica cvetov rgb. картинка Pygame quit что это. картинка tablica cvetov rgb

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

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

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

А после этого — заполнить весь экран.

Но этого недостаточно. Дисплей компьютера работает не так. Изменить пиксель — значит передать команду видеокарте, чтобы она передала соответствующую команду экрану. По компьютерным меркам это очень медленный процесс. Если нужно нарисовать на экране много всего, это займет много времени. Исправить это можно оригинальным способом, который называется — двойная буферизация. Звучит необычно, но вот что это такое.

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

Pygame quit что это. amanda bynes no neck tatoo. Pygame quit что это фото. Pygame quit что это-amanda bynes no neck tatoo. картинка Pygame quit что это. картинка amanda bynes no neck tatoo

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

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

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

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

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

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

Контроль FPS

Пока что нечего поместить в раздел Update (обновление), но нужно убедиться, что настройка FPS контролирует скорость игры. Это можно сделать следующим образом:

Команда tick() просит pygame определить, сколько занимает цикл, а затем сделать паузу, чтобы цикл (целый кадр) длился нужно время. Если задать значение FPS 30, это значит, что длина одного кадра — 1/30, то есть 0,03 секунды. Если цикл кода (обновление, рендеринг и прочее) занимает 0,01 секунды, тогда pygame сделает паузу на 0,02 секунды.

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

В следующем руководстве этот шаблон будет использован как отправная точка для изучения процесса отрисовки объектов на экране и их движения.

Источник

PyGame. Краткий справочник

Подготовка к работе

Основной шаблон для игровой программы

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

Вот основные функции, которые реализует код шаблона игровой программы :

Pygame quit что это. window templ. Pygame quit что это фото. Pygame quit что это-window templ. картинка Pygame quit что это. картинка window templ

Основное графическое окно игры

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

Основная поверхность

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

Игровой цикл

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

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

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

Контроль скорости игры

Таким образом, команда clock.tick(FPS) выполняет автоматический контроль заданной частоты кадров.

Программная реализация контроля частоты кадров может быть записана следующим образом:

Обработка событий

Событие (англ. Event) – это один из объектов pygame. Все события в PyGame при их появлении добавляются в очередь событий. Каждый элемент в этой очереди является Event объектом. Для получения доступа к событиям используется метод pygame.event.get(), который возвращает список событий, произошедших с момента последнего вызова этого метода. Просматривая список событий, мы может обработать выход из программы

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

Добавим код закрытия окна в наш

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

Pygame quit что это. window 1. Pygame quit что это фото. Pygame quit что это-window 1. картинка Pygame quit что это. картинка window 1

Обновление основной поверхности

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

Аналогом метода pygame.display.flip() является метод update(), имеющий тоже назначение.

Здесь rectangle – это прямоугольная область, которую требуется перерисовать. По умолчанию, если параметр rectangle не указан

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

Примечание.

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

Выполним обновление содержимого основного игрового окна

Surface

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

Функция Surface()

Этот код создаст пустое изображение размером 100 x 100 пикселей. Цвет по умолчанию будет черным.

Функция fill()

Функция принимает объект color – цвет заливки поверхности, это кортеж RGB, например, BLUE = (0, 0, 255)

Поверхности можно делать прозрачными с помощью их метода set_alpha(). Аргумент меняется от 0 (полная прозрачность) до 255 (полная непрозрачность).

mySurface.set_alpha(0) # полная прозрачность

Функция blit()

В этом примере функция blit() отображает содержимое дополнительной поверхности mySurface на поверхности screen.

Метод pygame.display.flip()

Метод pygame.display.update()

Механизм двойной буферизации

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

Класс Draw

Класс Draw имеет 9 методов рисования геометрических фигур, которые имеют следующие общие параметры:

Рисование прямоугольника:

Рисование круга:

Рисование треугольника/многоугольника:

Рисование линий

1. Рисование линии между точками start=(x,y) и end=(x1,y1)

2. Рисование тонкой сглаженной линии между точками start=(x,y) и end=(x1,y1),blend– коэффициент сглаживания линии

3. Рисование ломаной линии, pointlist = ((x1,y1),(x2,y2),(x3,y4)) – координаты точек связанных отрезков, сlosed = (True или False) указывает замыкать ли крайние точки.

Рисование эллипсов:

Рисование дуги:

Движение круга

Алгоритм движения можно записать следующим образом.

здесь x += 1 и у += 1 означает, что координаты круга изменяются на 1 пиксель на каждом игровом цикле.

pygame.draw.circle(screen, blue, (x, y), r)

Отталкивание круга от границ окна

В PyGame используется э кранная система координат – это координатная система, заданная на экранной плоскости. Две ее оси параллельны сторонам экрана, ось OX направлена слева на право, OY – снизу вверх.

Pygame quit что это. XOY. Pygame quit что это фото. Pygame quit что это-XOY. картинка Pygame quit что это. картинка XOY

Запишем условия не выхода круга за границы игрового экрана. Введем переменные для скорости перемещения круга: dx, dy – количество пикселей, на которое смещается центр круга по оси x и оси y за один кадр

В этом случае код контроля движения круга внутри игрового окна можно записать следующим образом:

Полный листинг программы

Способы обработки событий клавиатуры и мыши

Есть два основных способа работы с клавиатурой, мышью.

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

События клавиатуры могут иметь два типа

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

События мыши могут иметь четыре типа

Данный способ основан на работе с модулем клавиатуры и модулем мыши

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *