Spec-Zone.ru › Pygame
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, если имя отсутствует или индекс некорректен.

END_OF_DOCUMENT_MARKER
pygame._sdl2.controller.Controller
Создать новый объект Controller.
Controller(index) -> Controller

Создать новый объект Controller. Индекс должен быть целым числом от 0 до pygame._sdl2.controller.get_count(). Контроллеры также могут быть созданы из pygame.joystick.Joystick с помощью pygame._sdl2.controller.from_joystick. Контроллеры инициализируются при создании.

quit()
Деинициализировать Controller
quit() -> None

Закрыть объект Controller. После этого очередь событий pygame больше не будет получать события от устройства.

Безопасно вызывать это более одного раза.

get_init()
Проверить, инициализирован ли Controller
get_init() -> bool

Возвращает True, если объект Controller в настоящее время инициализирован.

static from_joystick()
Создать Controller из объекта pygame.joystick.Joystick
from_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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API