- pygame.mouse
-
Модуль pygame для работы с мышкой
Функции мыши могут использоваться для получения текущего состояния устройства мыши. Эти функции также могут изменять системный курсор для мыши.
Когда режим отображения установлен, очередь событий начнёт получать события мыши. Кнопки мыши генерируют события
pygame.MOUSEBUTTONDOWNиpygame.MOUSEBUTTONUPпри нажатии и отпускании. Эти события содержат атрибут кнопки, представляющий нажатую кнопку.Колесо мыши будет генерировать события
pygame.MOUSEBUTTONDOWNиpygame.MOUSEBUTTONUPпри прокрутке. Кнопка будет установлена в 4 при прокрутке вверх и в кнопку 5 при прокрутке вниз. Всякий раз, когда мышь перемещается, генерируется событиеpygame.MOUSEMOTION. Перемещение мыши разбивается на небольшие и точные события движения. При движении мыши в очереди будет размещено много событий движения. События движения мыши, которые не удалены должным образом из очереди событий, являются основной причиной заполнения очереди событий.Если курсор мыши скрыт, и ввод захвачен для текущего экрана, мышь перейдёт в режим виртуального ввода, где относительные перемещения мыши никогда не будут останавливаться границами экрана. Для настройки этого см. функции
pygame.mouse.set_visible()иpygame.event.set_grab().Поведение колеса мыши в pygame 2
Существует правильная функциональность для поведения колеса мыши с pygame 2, поддерживающим события
pygame.MOUSEWHEEL. Новые события поддерживают горизонтальные и вертикальные прокрутки со значениями целых чисел, представляющими количество прокрутки (xиy), а также направлениеflipped(установленные положительные и отрицательные значения для каждой оси перевернуты). Подробнее об изменениях, связанных с вводом SDL2, см. здесь https://wiki.libsdl.org/MigrationGuide#inputВ pygame 2 функциональность колеса мыши можно использовать, прослушивая события типа
pygame.MOUSEWHEEL(имейте в виду, что они всё ещё генерируют событияpygame.MOUSEBUTTONDOWNкак и в pygame 1.x). При срабатывании этого события разработчик может получить доступ к соответствующему объектуEventс помощьюpygame.event.get(). Объект может использоваться для доступа к данным о прокрутке мыши, таким какwhich(он покажет, какое именно устройство мыши вызвало событие).Пример кода прокрутки мыши (проверено на 2.0.0.dev7)# Taken from husano896's PR thread (slightly modified) import pygame from pygame.locals import * pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() def main(): while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() return elif event.type == MOUSEWHEEL: print(event) print(event.x, event.y) print(event.flipped) print(event.which) # can access properties with # proper notation(ex: event.y) clock.tick(60) # Execute game: main()
- pygame.mouse.get_pressed()
-
получить состояние кнопок мышиget_pressed(num_buttons=3) -> (button1, button2, button3)get_pressed(num_buttons=5) -> (button1, button2, button3, button4, button5)
Возвращает последовательность булевых значений, представляющих состояние всех кнопок мыши. Истинное значение означает, что кнопка мыши в данный момент нажата.
Для получения всех событий мыши лучше использовать либо
pygame.event.wait()илиpygame.event.get()и проверять все эти события, чтобы узнать, являются ли ониMOUSEBUTTONDOWN,MOUSEBUTTONUP, илиMOUSEMOTION.Обратите внимание, что в
X11некоторые X-серверы используют эмуляцию средней кнопки. Когда вы нажимаете обе кнопки1и3одновременно, может быть отправлено событие кнопки2.Обратите внимание, что необходимо вызвать
pygame.event.get()перед этой функцией. В противном случае она не будет работать должным образом.Для поддержки мышей с пятью кнопками в pygame 2 был добавлен необязательный параметр
num_buttons. Когда он установлен в5,button4иbutton5добавляются в возвращаемую кортеж. Только3и5являются допустимыми значениями для этого параметра.Изменено в pygame 2.0.0: Добавлен аргумент
num_buttons
- pygame.mouse.get_pos()
-
получить позицию курсора мышиget_pos() -> (x, y)
Возвращает
xиyположение курсора мыши. Позиция относительна к верхнему левому углу экрана. Позиция курсора может находиться вне окна отображения, но всегда ограничена экраном.
- pygame.mouse.get_rel()
-
получить величину перемещения мышиget_rel() -> (x, y)
Возвращает величину перемещения по
xиyс момента предыдущего вызова этой функции. Относительное перемещение курсора мыши ограничено краями экрана, но см. режим виртуального ввода мыши для обхода этого ограничения. Режим виртуального ввода мыши описан в начале страницы.
- pygame.mouse.set_pos()
-
установить позицию курсора мышиset_pos([x, y]) -> None
Устанавливает текущую позицию мыши на заданные значения. Если курсор мыши виден, он переместится в новые координаты. Перемещение мыши сгенерирует новое событие
pygame.MOUSEMOTION.
- pygame.mouse.set_visible()
-
скрыть или показать курсор мышиset_visible(bool) -> bool
Если аргумент bool равен true, курсор мыши будет виден. Будет возвращено предыдущее состояние видимости курсора.
- pygame.mouse.get_visible()
-
получить текущее состояние видимости курсора мышиget_visible() -> bool
Получить текущее состояние видимости курсора мыши.
Trueесли мышь видна,Falseв противном случае.Новое в pygame 2.0.0.
- pygame.mouse.get_focused()
-
проверить, получает ли экран входные данные мышиget_focused() -> bool
Возвращает true, когда pygame получает события мыши (или, в терминологии оконных систем, является "активным" или имеет "фокус").
Этот метод наиболее полезен при работе в окне. В отличие от этого, в полноэкранном режиме этот метод всегда возвращает true.
Примечание: в
MSWindows окно, имеющее фокус мыши, также имеет фокус клавиатуры. Однако в X-Windows одно окно может получать события мыши, а другое - события клавиатуры.pygame.mouse.get_focused()указывает, получает ли окно pygame события мыши.
- pygame.mouse.set_cursor()
-
установить курсор мыши на новый курсорset_cursor(pygame.cursors.Cursor) -> Noneset_cursor(size, hotspot, xormasks, andmasks) -> Noneset_cursor(hotspot, surface) -> Noneset_cursor(constant) -> None
Установить курсор мыши на новый. Эта функция принимает либо явный объект
Cursorили аргументы для создания объектаCursor.См.
pygame.cursors.Cursorдля получения справки по созданию курсоров и примеров.Изменено в pygame 2.0.1.
- pygame.mouse.get_cursor()
-
получить текущий курсор мышиget_cursor() -> pygame.cursors.Cursor
Получить информацию о системном курсоре мыши. Возвращаемое значение содержит те же данные, что и аргументы, переданные в
pygame.mouse.set_cursor().Примечание
Код, который распаковывал вызов get_cursor() в
size, hotspot, xormasks, andmasks, по-прежнему будет работать, если вызов возвращает курсор старого типа.Изменено в pygame 2.0.1.
Изменить на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/mouse.html