ym88659208ym87991671
Поддержка геймпада | Документация для разработчиков

Поддержка геймпада

Обновлено 13 сентября 2023

Вы можете настроить поддержку геймпада для навигации в Native App. Геймпад можно использовать:

  • как замену физического или виртуального пульта;
  • для управления в HTML-играх.

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

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

Когда пользователь использует геймпад, ОС устройства передает следующие события:

  • При нажатии кнопок передаются события, аналогичные событиям KeyEvent в Android.
  • При нажатии курков или использовании стиков передаются события, аналогичные событиям MotionEvent в Android.

Чтобы обрабатывать эти типы событий:

  • Переопределите колбэк onKeyDown для регистрации событий типа KeyEvent.
  • Реализуйте метод onGenericMotionEvent для регистрации событий типа MotionEvent.

События нажатия кнопок

Кнопка на геймпадеКод нажатия клавиши на клавиатуре Android
AKeyEvent.KEYCODE_BUTTON_A = 96;
B

KeyEvent.KEYCODE_BUTTON_B = 97;

KeyEvent.KEYCODE_BACK = 4;

X

KeyEvent.KEYCODE_BUTTON_X = 99;

KeyEvent.KEYCODE_DEL = 67;

Y

KeyEvent.KEYCODE_BUTTON_Y = 100;

KeyEvent.KEYCODE_SPACE = 62;

Left

KeyEvent.KEYCODE_DPAD_LEFT = 21;

MotionEvent.ACTION_MOVE

AXIS_HAT_X -1.0 принимает значение 0 или -1.

Right

KeyEvent.KEYCODE_DPAD_RIGHT = 22;

MotionEvent.ACTION_MOVE

AXIS_HAT_X 1.0 принимает значение 0 или 1.

Up

KeyEvent.KEYCODE_DPAD_UP = 19;

MotionEvent.ACTION_MOVE

AXIS_HAT_Y -1.0 принимает значение 0 или -1.

Down

KeyEvent.KEYCODE_DPAD_DOWN = 20;

MotionEvent.ACTION_MOVE

AXIS_HAT_Y 1.0 принимает значение 0 или 1.

RBKeyEvent.KEYCODE_BUTTON_R1 = 103;
LBKeyEvent.KEYCODE_BUTTON_L1 = 102;
RTKeyEvent.KEYCODE_BUTTON_R2 = 105;
LT

KeyEvent.KEYCODE_BUTTON_L2 = 104;

MotionEvent.ACTION_MOVE

AXIS_BRAKE принимает значение 0 или 1.

Left Stick

Отклонение стика:

KeyEvent.KEYCODE_DPAD_UP = 19;

KeyEvent.KEYCODE_DPAD_DOWN = 20;

KeyEvent.KEYCODE_DPAD_LEFT = 21;

KeyEvent.KEYCODE_DPAD_RIGHT = 22;

Клик по стику:

KeyEvent.KEYCODE_BUTTON_THUMBL = 106;

KeyEvent.KEYCODE_DPAD_CENTER = 23;

MotionEvent.ACTION_MOVE

AXIS_X принимает значение от -1 до 1.

AXIS_Y принимает значение от -1 до 1.

Right Stick

Клик по стику:

KeyEvent.KEYCODE_BUTTON_THUMBR = 107;

KeyEvent.KEYCODE_DPAD_CENTER = 23;

MotionEvent.ACTION_MOVE

AXIS_Z принимает значение от -1 до 1.

AXIS_RZ принимает значение от -1 до 1.

Гироскоп

KeyEvent.KEYCODE_DPAD_LEFT = 21;

KEYCODE_DPAD_RIGHT = 22;

MotionEvent.ACTION_MOVE

AXIS_X принимает значение от -1 до 1.

Виртуальный геймпад не имеет плавного хода триггеров и управления осями AXIS_RTRIGGER, AXIS_LTRIGGER и AXIS_THROTTLE.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.