- pygame._sdl2.controller
-
Модуль Pygame для работы с контроллерами.
Этот модуль предоставляет управление над распространёнными типами контроллеров, такими как dualshock 4 или xbox 360: они имеют два аналоговых джойстика, две кнопки-триггера, две кнопки на плечах, д-пад, 4 кнопки сбоку, 2 (или 3) кнопки посередине.
Pygame использует соглашения об именовании контроллеров Xbox (например, a, b, x, y для кнопок), но они всегда относятся к тем же кнопкам. Например
CONTROLLER_BUTTON_Xвсегда является самой левой кнопкой из четырёх кнопок справа.Контроллеры могут генерировать следующие события:
CONTROLLERAXISMOTION, CONTROLLERBUTTONDOWN, CONTROLLERBUTTONUP, CONTROLLERDEVICEREMAPPED, CONTROLLERDEVICEADDED, CONTROLLERDEVICEREMOVED
Кроме того, если Pygame скомпилирован с SDL 2.0.14 или более поздней версии, могут генерироваться и следующие события (чтобы получить версию SDL, с которой скомпилирован Pygame, используйте
pygame.version.SDL()):CONTROLLERTOUCHPADDOWN, CONTROLLERTOUCHPADMOTION, CONTROLLERTOUCHPADUP
Эти события могут быть включены/выключены с помощью
pygame._sdl2.controller.set_eventstate()Обратите внимание, что контроллеры также могут генерировать события джойстика. Эта функция только переключает события, относящиеся к контроллерам.Примечание
См.
pygame.joystickдля более универсального, но более продвинутого API.Новое в pygame 2: Этот модуль требует SDL2.
- pygame._sdl2.controller.init()
-
инициализировать модуль контроллераinit() -> None
Инициализирует модуль контроллера.
- pygame._sdl2.controller.quit()
-
Деинициализировать модуль контроллера.quit() -> None
Деинициализирует модуль контроллера.
- pygame._sdl2.controller.get_init()
-
Возвращает True, если модуль контроллера инициализирован.get_init() -> bool
Проверяет, был ли вызван %%%CODE_BLOCK_6%%.
- pygame._sdl2.controller.set_eventstate()
-
Устанавливает текущее состояние событий, связанных с контроллерамиset_eventstate(state) -> None
Включает или выключает события, связанные с контроллерами.
Примечание
Контроллеры все равно могут генерировать события джойстика, которые эта функция не будет переключать.
Изменено в pygame 2.0.2:: Изменено тип возвращаемого значения с int на None
- pygame._sdl2.controller.get_eventstate()
-
Получает текущее состояние событий, связанных с контроллерамиget_eventstate() -> bool
Возвращает текущее состояние событий, связанных с контроллерами; True означает, что события будут публиковаться.
Новое в pygame 2.0.2.
- pygame._sdl2.controller.get_count()
-
Получить количество подключенных джойстиковget_count() -> int
Получает количество подключенных джойстиков.
- pygame._sdl2.controller.is_controller()
-
Проверить, поддерживает ли данный джойстик интерфейс игрового контроллераis_controller(index) -> bool
Возвращает True, если указанный индекс может быть использован для создания объекта контроллера.
- pygame._sdl2.controller.name_forindex()
-
Получить имя контроллераname_forindex(index) -> name or None
Возвращает имя контроллера или None, если имя отсутствует или индекс некорректен.
- pygame._sdl2.controller.Controller
-
Создать новый объект Controller.Controller(index) -> Controller
Создать новый объект Controller. Индекс должен быть целым числом от 0 до
pygame._sdl2.controller.get_count(). Контроллеры также могут быть созданы изpygame.joystick.Joystickс помощьюpygame._sdl2.controller.from_joystick. Контроллеры инициализируются при создании.- quit()
-
Деинициализировать Controllerquit() -> None
Закрыть объект Controller. После этого очередь событий pygame больше не будет получать события от устройства.
Безопасно вызывать это более одного раза.
- get_init()
-
Проверить, инициализирован ли Controllerget_init() -> bool
Возвращает True, если объект Controller в настоящее время инициализирован.
- static from_joystick()
-
Создать Controller из объекта pygame.joystick.Joystickfrom_joystick(joystick) -> Controller
Создать объект Controller из объекта
pygame.joystick.Joystick
- attached()
-
Проверить, подключен ли Controller.attached() -> bool
Возвращает True, если объект Controller открыт и подключен.
- as_joystick()
-
Возвращает объект pygame.joystick.Joystick()as_joystick() -> Joystick object
Возвращает объект pygame.joystick.Joystick() созданный из индекса этого контроллера
- get_axis()
-
Получить текущее состояние оси джойстикаget_axis(axis) -> int
Получить текущее состояние оси триггера или джойстика. Аргумент axis должен быть одним из следующих констант:
CONTROLLER_AXIS_LEFTX, CONTROLLER_AXIS_LEFTY, CONTROLLER_AXIS_RIGHTX, CONTROLLER_AXIS_RIGHTY, CONTROLLER_AXIS_TRIGGERLEFT, CONTROLLER_AXIS_TRIGGERRIGHT
Джойстики могут возвращать значение от -32768 до 32767. Однако триггеры могут возвращать только значение от 0 до 32768.
- get_button()
-
Получить текущее состояние кнопкиget_button(button) -> bool
Получить текущее состояние кнопки, True означает, что она нажата. Аргумент button должен быть одной из следующих констант:
CONTROLLER_BUTTON_A, CONTROLLER_BUTTON_B, CONTROLLER_BUTTON_X, CONTROLLER_BUTTON_Y CONTROLLER_BUTTON_DPAD_UP, CONTROLLER_BUTTON_DPAD_DOWN, CONTROLLER_BUTTON_DPAD_LEFT, CONTROLLER_BUTTON_DPAD_RIGHT, CONTROLLER_BUTTON_LEFTSHOULDER, CONTROLLER_BUTTON_RIGHTSHOULDER, CONTROLLER_BUTTON_LEFTSTICK, CONTROLLER_BUTTON_RIGHTSTICK, CONTROLLER_BUTTON_BACK, CONTROLLER_BUTTON_GUIDE, CONTROLLER_BUTTON_START
- get_mapping()
-
Получить сопоставление, назначенное контроллеруget_mapping() -> mapping
Возвращает словарь, содержащий сопоставление контроллера. Для получения дополнительной информации см.
Controller.set_mapping()Изменено в pygame 2.0.2:: Изменено тип возвращаемого значения с
strнаdict
- set_mapping()
-
Назначить сопоставление контроллеруset_mapping(mapping) -> int
Переназначить кнопки, оси, триггеры и джойстики. Сопоставление должно быть словарем, содержащим все кнопки, джойстики и оси. Самый простой способ получить это — использовать словарь, возвращаемый
Controller.get_mapping(). Для редактирования этого сопоставления присвойте значение исходной кнопке. Значение словаря должно быть кнопкой, джойстиком или осью, представленными следующим образом:Для кнопки используйте: bX, где X — индекс кнопки.
Для джойстика используйте: hX.Y, где X — индекс, а Y — направление (вверх: 1, вправо: 2, вниз: 3, влево: 4).
Для оси используйте: aX, где x — индекс оси.
Пример сопоставления:
mapping = controller.get_mapping() # Get current mapping mapping["a"] = "b3" # Remap button a to y mapping["y"] = "b0" # Remap button y to a controller.set_mapping(mapping) # Set the mapping
Функция вернет 1, если новое сопоставление добавлено, или 0, если существующее обновлено.
Изменено в pygame 2.0.2:: Переименовано из
add_mappingвset_mappingИзменено в pygame 2.0.2:: Изменен тип аргумента с
strнаdict
- rumble()
-
Запустить вибрациюrumble(low_frequency, high_frequency, duration) -> bool
Запустить вибрацию контроллера с указанной силой от 0 до 1. Duration — продолжительность эффекта в мс. Установка duration в 0 воспроизведёт эффект, пока другой эффект не перезапишет его или не будет вызван
Controller.stop_rumble(). Если эффект уже воспроизводится, он будет перезаписан.Возвращает True, если вибрация была успешно воспроизведена, или False, если контроллер её не поддерживает или
pygame.version.SDL()меньше 2.0.9.Добавлена в pygame 2.0.2.
- stop_rumble()
-
Остановить любую вибрациюstop_rumble() -> None
Останавливает любую вибрацию на контроллере. Подробнее см.
Controller.rumble().Добавлена в pygame 2.0.2.
Изменить на GitHub
© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/sdl2_controller.html