Как узнать разрешение экрана pygame

Обновлено: 02.07.2024

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

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

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

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

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

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

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

После того как ожидаемое событие наступило, завершаем работу с библиотекой pygame вызовом функции pygame.quit() и нашей программы вызовом функции exit() из модуля sys .

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

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

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

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

В библиотеке pygame функции отображения геометрических фигур находятся в модуле draw . Нарисуем прямоугольник c помощью функции rect() :

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

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

Обратите внимание на последнюю строку нашей программы. На самом деле графические объекты которые мы хотим разместить на основном экране сначала попадают в специальный буфер. Чтобы отобразить изменения стали видны вызываем функцию flip() .

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

pygame.draw. line ( Surface, color, start_pos, end_pos, width=1 ) ¶

Нарисовать линию на поверхности Surface , цветом color , с началом в точке start_pos , концом в точке end_pos и толщиной линии width.

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

Нарисовать линию, соединяющую точки из последовательности pointlist на поверхности Surface , цветом color , с толщиной линии width . Каждая точка представлена парой координат. Если параметр closed равен True , конечная точка соединяется с начальной.

Нарисовать окружность на поверхности Surface, цветом color , с центром в точке pos и радиусом radius . Если толщина линии width равна нулю, окружность закрашивается.

Нарисовать эллипс, ограниченный прямоугольником Rect , на поверхности Surface , цветом color . Если толщина линии width равна нулю, эллипс закрашивается.

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

Нарисовать многоугольник по точкам из последовательности pointlist на поверхности Surface , цветом color , с толщиной линии width . Каждая точка представлена парой координат. Если толщина линии width равна нулю многоугольник закрашивается.

Значение для цвета можно задать тройкой чисел, каждое из которых лежит в диапазоне от 0 до 255. Первое значение в последовательности определяет, какое количество красного содержится в данном оттенке, второе - зеленого, третье - голубого. Чем меньше значение числа, тем темнее будет оттенок. Например, красный цвет можно представить как (255, 0, 0), белый как (255, 255, 255), а черный как (0, 0, 0).

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

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

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

При работе с текстом мы будем использовать шрифты - группы символов объединенных по стилистическому или иному признаку. Шрифты в библиотеке pygame представлены типом Font

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

С помощью параметра name передаем в функцию имя шрифта, параметр size - размер шрифта в пунктах. Параметры bold и italic отвечают за начертание шрифта.

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

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

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

Задания¶

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

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

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

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

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

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

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

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

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

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

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

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

После того как ожидаемое событие наступило, завершаем работу с библиотекой pygame вызовом функции pygame.quit() и нашей программы вызовом функции exit() из модуля sys .

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

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

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

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

В библиотеке pygame функции отображения геометрических фигур находятся в модуле draw . Нарисуем прямоугольник c помощью функции rect() :

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

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

Обратите внимание на последнюю строку нашей программы. На самом деле графические объекты которые мы хотим разместить на основном экране сначала попадают в специальный буфер. Чтобы отобразить изменения стали видны вызываем функцию flip() .

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

pygame.draw. line ( Surface, color, start_pos, end_pos, width=1 ) ¶

Нарисовать линию на поверхности Surface , цветом color , с началом в точке start_pos , концом в точке end_pos и толщиной линии width.

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

Нарисовать линию, соединяющую точки из последовательности pointlist на поверхности Surface , цветом color , с толщиной линии width . Каждая точка представлена парой координат. Если параметр closed равен True , конечная точка соединяется с начальной.

Нарисовать окружность на поверхности Surface, цветом color , с центром в точке pos и радиусом radius . Если толщина линии width равна нулю, окружность закрашивается.

Нарисовать эллипс, ограниченный прямоугольником Rect , на поверхности Surface , цветом color . Если толщина линии width равна нулю, эллипс закрашивается.

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

Нарисовать многоугольник по точкам из последовательности pointlist на поверхности Surface , цветом color , с толщиной линии width . Каждая точка представлена парой координат. Если толщина линии width равна нулю многоугольник закрашивается.

Значение для цвета можно задать тройкой чисел, каждое из которых лежит в диапазоне от 0 до 255. Первое значение в последовательности определяет, какое количество красного содержится в данном оттенке, второе - зеленого, третье - голубого. Чем меньше значение числа, тем темнее будет оттенок. Например, красный цвет можно представить как (255, 0, 0), белый как (255, 255, 255), а черный как (0, 0, 0).

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

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

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

При работе с текстом мы будем использовать шрифты - группы символов объединенных по стилистическому или иному признаку. Шрифты в библиотеке pygame представлены типом Font

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

С помощью параметра name передаем в функцию имя шрифта, параметр size - размер шрифта в пунктах. Параметры bold и italic отвечают за начертание шрифта.

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

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

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

Задания¶

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

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

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

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

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

Каков самый простой способ получить разрешение монитора (желательно в кортеже)?

Используете ли вы конкретный инструментарий пользовательского интерфейса? (например, GTK, wxPython, Tkinter и т. д.) С модулем Tkinter вы можете сделать это следующим образом . Он является частью стандартной библиотеки Python и работает на большинстве платформ Unix и Windows. Хороший обзор по различным методам для общих интерфейсов дан по этой ссылке

так что вам не нужно устанавливать пакет pywin32; ему не нужно ничего, что не связано с самим Python.

Для нескольких мониторов вы можете использовать GetSystemMetrics (78) и GetSystemMetrics (79)

FYI Я создал модуль PyPI по этой причине:

Он поддерживает среды с несколькими мониторами. Его цель - быть кросс-платформой; на данный момент он поддерживает Cygwin и X11, но запросы на передачу полностью приветствуются.

Отлично работает на Windows, но Mac Я получаю следующую ошибку: ImportError: Не удалось загрузить X11 Отлично работает на Ubuntu. Проверено на Ubuntu 16.04. Удобный модуль (+1). Мне пришлось установить пару требований (например, pip install cython pyobjus ), прежде чем я смог использовать его в OSX

Если вы используете wxWindows, вы можете просто:

Это лучший . у кого нет wx? :) плюс несколько строк вместо кучки кода на ваших глазах. Теперь это мой метод по умолчанию, спасибо. Это должно быть app = wx.App(False) иначе вы получите «объект wx.App должен быть создан первым». ошибка. 26 голосов а никто не проверял? Работает ли в Windows, не назначая экземпляр wx переменной?

Взято непосредственно из ответа на этот пост: Как получить размер экрана в Tkinter?

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

В Windows 8.1 я не получаю правильное разрешение от ctypes или tk. У других людей такая же проблема для ctypes: getsystemmetrics возвращает неправильный размер экрана Чтобы получить правильное полное разрешение высокого монитора DPI на окнах 8.1, нужно вызвать SetProcessDPIAware и использовать следующий код:

Подробные сведения ниже:

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

На моем мониторе я получаю:
Физическое разрешение: 2560 x 1440 (220 DPI)
Сообщенное разрешение python: 1555 x 875 (158 DPI)

Я могу получить правильное полноэкранное разрешение и текущий DPI с приведенным ниже кодом. Обратите внимание, что я вызываю SetProcessDPIAware(), чтобы программа могла видеть реальное разрешение.

Я запускаю Windows 8.1 с монитором, поддерживающим 220 DPI. Мое масштабирование экрана устанавливает мой текущий DPI на 158.

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

Начало экрана,где x=0 и y=0,находится в верхней левой части экрана.Обе оси увеличиваются в положительную сторону по направлению к нижней правой части экрана.

pygame.display.set_mode() . --> На самом деле отображение pygame можно инициализировать в одном из нескольких режимов. По умолчанию дисплей представляет собой базовый программный буфер кадра. Вы можете запросить специальные модули, такие как аппаратное ускорение и поддержку OpenGL. Они контролируются флагами, передаваемыми в pygame.display.set_mode() .

pygame.display.set_mode() will close the previous display. If precise control is needed over the pixel format or display resolutions, use the functions pygame.display.mode_ok() , pygame.display.list_modes() , and pygame.display.Info() to query information about the display. --> Pygame может иметь активным только один дисплей в любое время. Создание нового с помощью pygame.display.set_mode() закроет предыдущий дисплей. Если требуется точный контроль над форматом пикселей или разрешением экрана, используйте функции pygame.display.mode_ok() , pygame.display.list_modes() и pygame.display.Info() для запроса информации об отображении.

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

pygame.QUIT is sent when the user has requested the program to shut down. The window will receive pygame.ACTIVEEVENT events as the display gains and loses input focus. If the display is set with the pygame.RESIZABLE flag, pygame.VIDEORESIZE events will be sent when the user adjusts the window dimensions. Hardware displays that draw direct to the screen will get pygame.VIDEOEXPOSE events when portions of the window must be redrawn. --> Когда режим отображения установлен, несколько событий помещаются в очередь событий pygame. pygame.QUIT отправляется, когда пользователь запросил завершение работы программы. Окно будет получать события pygame.ACTIVEEVENT по мере того, как дисплей приобретает и теряет фокус ввода. Если дисплей установлен с pygame.RESIZABLE флагом, pygame.VIDEORESIZE событие будет пересылаться , когда пользователь изменяет размеры окна. Аппаратные дисплеи, которые рисуют прямо на экране, будут получать события pygame.VIDEOEXPOSE , когда части окна должны быть перерисованы.

pygame.WINDOWEVENT that is meant to replace all window related events like pygame.VIDEORESIZE , pygame.VIDEOEXPOSE and pygame.ACTIVEEVENT . --> В pygame 2 есть новый тип события под названием pygame.WINDOWEVENT , который предназначен для замены всех связанных с окном событий, таких как pygame.VIDEORESIZE , pygame.VIDEOEXPOSE и pygame.ACTIVEEVENT .

Обратите внимание,что API WINDOWEVENT считается экспериментальным и может измениться в будущих выпусках.

pygame.WINDOWEVENT have an event attribute that can take the following values. --> Новые события типа pygame.WINDOWEVENT имеют атрибут event который может принимать следующие значения.

WINDOWEVENT_TAKE_FOCUS and WINDOWEVENT_HIT_TEST will not work. See the SDL implementation (in C programming) of the same over here. --> Если используемая версия SDL меньше 2.0.5, два последних значения WINDOWEVENT_TAKE_FOCUS и WINDOWEVENT_HIT_TEST не будут работать. См. Реализацию SDL (в программировании на C) здесь.

В некоторых средах дисплея есть возможность автоматического растягивания всех окон.Когда эта опция включена,автоматическое растягивание искажает внешний вид окна пигамы.В каталоге примеров пигамы есть пример кода (prevent_display_stretching.py),который показывает,как отключить это автоматическое растягивание отображения пигамы на Microsoft Windows (требуется Vista или более новая версия).

pygame.init() . --> Инициализирует модуль отображения pygame. Модуль дисплея не может ничего делать, пока не будет инициализирован. Обычно это выполняется автоматически при вызове более высокого уровня pygame.init() .

SDL_VIDEODRIVER can be set to control which backend is used. The systems with multiple choices are listed here. --> Pygame выберет один из нескольких внутренних экранных модулей при инициализации. Режим отображения будет выбран в зависимости от платформы и прав текущего пользователя. Перед инициализацией модуля SDL_VIDEODRIVER можно задать переменную среды SDL_VIDEODRIVER для управления используемым сервером . Здесь перечислены системы с множественным выбором.

SDL_WINDOWID must be set to a string containing the window id or handle. The environment variable is checked when the pygame display is initialized. Be aware that there can be many strange side effects when running in an embedded display. --> На некоторых платформах можно встроить отображение pygame в уже существующее окно. Для этого в переменной среды SDL_WINDOWID должна быть установлена ​​строка, содержащая идентификатор окна или дескриптор. Переменная среды проверяется при инициализации отображения pygame. Имейте в виду, что при работе со встроенным дисплеем может возникнуть много странных побочных эффектов.

Безобидно называть это не один раз,повторные звонки не имеют никакого эффекта.

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

Безобидно называть это не один раз,повторные звонки не имеют никакого эффекта.

Возвращает True,если дисплейный модуль был инициализирован.

pygame.display module is currently initialized. --> Возвращает True, если модуль pygame.display в настоящий момент инициализирован.

set_mode (size = (0, 0), flags = 0, depth = 0, display = 0, vsync = 0) -> Поверхность

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

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

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

(0, 0) and pygame uses SDL version 1.2.10 or above, the created Surface will have the same size as the current screen resolution. If only the width or height are set to 0 , the Surface will have the same width or height as the screen resolution. Using a SDL version prior to 1.2.10 will raise an exception. --> Если размер не передан или установлен в (0, 0) и pygame использует SDL версии 1.2.10 или выше, созданная поверхность будет иметь тот же размер, что и текущее разрешение экрана. Если только ширина или высота установлены на 0 , поверхность будет иметь ту же ширину или высоту, что и разрешение экрана. Использование версии SDL до 1.2.10 вызовет исключение.

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

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

На дисплеях с высоким разрешением (4k,1080p)и крошечной графикой (640x480)игры отображаются очень маленькими,так что в них невозможно играть.SCALED увеличивает окно для вас.Игра думает,что это окно 640x480,но на самом деле оно может быть больше.События мыши масштабируются за вас,так что вашей игре не нужно этого делать.Обратите внимание,что SCALED считается экспериментальным API и может измениться в будущих выпусках.

0 or no flags argument it will default to a software driven window. Here are the display flags you will want to choose from: --> Аргумент flags определяет, какой тип отображения вы хотите. Есть несколько вариантов на выбор, и вы даже можете комбинировать несколько типов с помощью побитового оператора или (вертикальная черта "|"). Если вы передадите 0 или не передадите аргумент флагов, по умолчанию будет запущено программное окно. Вот отображаемые флаги, из которых вы захотите выбрать:

В Pygame 2 доступны следующие дополнительные флаги.

SCALED , SHOWN and HIDDEN --> Новое в Pygame 2.0.0: SCALED , SHOWN и HIDDEN

vsync parameter to 1 , it is possible to get a display with vertical sync, but you are not guaranteed to get one. The request only works at all for calls to set_mode() with the pygame.OPENGL or pygame.SCALED flags set, and is still not guaranteed even with one of those set. What you get depends on the hardware and driver configuration of the system pygame is running on. Here is an example usage of a call to set_mode() that may give you a display with vsync: --> Установив для параметра vsync значение 1 , можно получить отображение с вертикальной синхронизацией, но это не гарантируется. Запрос вообще работает только для вызовов set_mode() с установленными pygame.OPENGL или pygame.SCALED и по-прежнему не гарантируется даже с одним из них. То, что вы получите, зависит от конфигурации оборудования и драйверов системы, на которой работает pygame. Вот пример использования вызова set_mode() который может дать вам отображение с vsync:

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

vsync --> Новое в pygame 2.0.0: vsync

0 means the default display is used. --> Индекс дисплея 0 означает, что используется дисплей по умолчанию.

display argument added --> Изменено в pygame 1.9.5: добавлен аргумент display

Получить ссылку на поверхность дисплея,установленную в данный момент.

Возврат ссылки на текущий установленный дисплей Поверхность.Если режим отображения не был установлен,возвращается None.

pygame.HWSURFACE and pygame.DOUBLEBUF , this will wait for a vertical retrace and swap the surfaces. If you are using a different type of display mode, it will simply update the entire contents of the surface. --> Это обновит содержимое всего дисплея. Если в вашем режиме отображения используются флаги pygame.HWSURFACE и pygame.DOUBLEBUF , это будет ждать вертикального отката и поменять местами поверхности. Если вы используете другой тип режима отображения, он просто обновит все содержимое поверхности.

pygame.OPENGL display mode this will perform a gl buffer swap. --> При использовании pygame.OPENGL отображения pygame.OPENGL выполняется замена буфера gl.

pygame.display.flip() for software displays. It allows only a portion of the screen to updated, instead of the entire area. If no argument is passed it updates the entire Surface area like pygame.display.flip() . --> Эта функция похожа на оптимизированную версию pygame.display.flip() для отображения программного обеспечения. Это позволяет обновлять только часть экрана, а не всю область. Если аргумент не передан, он обновляет всю область Surface, например pygame.display.flip() .

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

pygame.OPENGL displays and will generate an exception. --> Этот вызов нельзя использовать на дисплеях pygame.OPENGL и вызовет исключение.

SDL_VIDEODRIVER flags in pygame.display.set_mode() to see some of the common options. --> Pygame выбирает один из множества доступных экранных модулей при инициализации. Это возвращает внутреннее имя, используемое для серверной части дисплея. Это можно использовать для предоставления ограниченной информации о том, какие возможности отображения могут быть ускорены. См. Флаги SDL_VIDEODRIVER в pygame.display.set_mode() чтобы увидеть некоторые общие параметры.

pygame.display.set_mode() some platforms can provide information about the default display mode. This can also be called after setting the display mode to verify specific display options were satisfied. The VidInfo object has several attributes: --> Создает простой объект, содержащий несколько атрибутов для описания текущей графической среды. Если это вызывается перед pygame.display.set_mode() некоторые платформы могут предоставить информацию о режиме отображения по умолчанию. Это также можно вызвать после установки режима отображения, чтобы убедиться, что определенные параметры отображения удовлетворены. У объекта VidInfo есть несколько атрибутов:

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

Новое в pygame 1.7.1.

list_modes (depth = 0, flags = pygame.FULLSCREEN, display = 0) -> список

-1 means that any requested size should work (this is likely the case for windowed modes). Mode sizes are sorted from biggest to smallest. --> Эта функция возвращает список возможных размеров для указанной глубины цвета. Возвращаемое значение будет пустым списком, если с заданными аргументами нет доступных режимов отображения. Возвращаемое значение -1 означает, что любой запрошенный размер должен работать (это, вероятно, относится к оконным режимам). Размеры режимов отсортированы от наибольшего к наименьшему.

0 , the current/best color depth for the display is used. The flags defaults to pygame.FULLSCREEN , but you may need to add additional flags for specific fullscreen modes. --> Если глубина равна 0 , используется текущая / наилучшая глубина цвета для дисплея. По умолчанию флаги имеют значение pygame.FULLSCREEN , но вам может потребоваться добавить дополнительные флаги для определенных полноэкранных режимов.

0 means the default display is used. --> Индекс дисплея 0 означает, что используется дисплей по умолчанию.

display argument added --> Изменено в pygame 1.9.5: добавлен аргумент display

Выберите оптимальную глубину цвета для режима отображения. mode_ok (размер, флаги = 0, глубина = 0, отображение = 0) -> глубина

pygame.display.set_mode() . It is used to determine if a requested display mode is available. It will return 0 if the display mode cannot be set. Otherwise it will return a pixel depth that best matches the display asked for. --> Эта функция использует те же аргументы, что и pygame.display.set_mode() . Он используется, чтобы определить, доступен ли запрошенный режим отображения. Он вернет 0 , если режим отображения не может быть установлен. В противном случае он вернет глубину пикселей, которая лучше всего соответствует запрашиваемому дисплею.

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

pygame.HWSURFACE , pygame.DOUBLEBUF , and maybe pygame.FULLSCREEN . The function will return 0 if these display flags cannot be set. --> Наиболее полезными флагами для передачи будут pygame.HWSURFACE , pygame.DOUBLEBUF и, возможно, pygame.FULLSCREEN . Функция вернет 0, если эти флаги отображения не могут быть установлены.

0 means the default display is used. --> Индекс дисплея 0 означает, что используется дисплей по умолчанию.

display argument added --> Изменено в pygame 1.9.5: добавлен аргумент display

Получить значение для флага OpenGL для текущего отображения.

pygame.display.set_mode() with the pygame.OPENGL flag, it is a good idea to check the value of any requested OpenGL attributes. See pygame.display.gl_set_attribute() for a list of valid flags. --> После вызова pygame.display.set_mode() с флагом pygame.OPENGL рекомендуется проверить значение любых запрошенных атрибутов OpenGL. См. pygame.display.gl_set_attribute() для получения списка допустимых флагов.

Запрос атрибута отображения OpenGL для режима отображения

pygame.display.set_mode() with the pygame.OPENGL flag, Pygame automatically handles setting the OpenGL attributes like color and double-buffering. OpenGL offers several other attributes you may want control over. Pass one of these attributes as the flag, and its appropriate value. This must be called before pygame.display.set_mode() . --> При вызове pygame.display.set_mode() с флагом pygame.OPENGL Pygame автоматически устанавливает такие атрибуты OpenGL, как цвет и двойная буферизация. OpenGL предлагает несколько других атрибутов, которыми вы, возможно, захотите управлять. Передайте один из этих атрибутов в качестве флага и его соответствующее значение. Это должно быть pygame.display.set_mode() перед pygame.display.set_mode () .

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

Включить ли мультидискретизацию против сглаживания.По умолчанию 0 (отключено).

GL_MULTISAMPLESAMPLES to a value above 0 to control the amount of anti-aliasing. A typical value is 2 or 3. --> Установите GL_MULTISAMPLESAMPLES на значение выше 0, чтобы контролировать степень сглаживания. Типичное значение - 2 или 3.

Читайте также: