Spec-Zone.ru › Web APIs

GamepadButton

Базовая Широко поддерживается *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2017 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Интерфейс GamepadButton определяет отдельную кнопку геймпада или другого контроллера, позволяя получить доступ к текущему состоянию различных типов кнопок, доступных на устройстве управления.

Объект GamepadButton возвращается при запросе любого значения массива, возвращаемого свойством buttons интерфейса Gamepad.

Свойства экземпляра

GamepadButton.pressed Только для чтения

Булево значение, указывающее, нажата ли кнопка в данный момент (true) или не нажата (false).

GamepadButton.touched Только для чтения

Булево значение, указывающее, нажата ли кнопка в данный момент (true) или нет (false).

GamepadButton.value Только для чтения

Двойное значение, используемое для представления текущего состояния аналоговых кнопок, таких как спусковые крючки на многих современных геймпадах. Значения нормированы в диапазоне 0.0 — 1.0, где 0.0 соответствует ненажатой кнопке, а 1.0 — полностью нажатой кнопке.

Пример

Значения кнопок в примере ниже хранятся в массиве объектов GamepadButton. Этот простой пример проверяет, является ли GamepadButton.value кнопки больше, чем 0, или свойство GamepadButton.pressed указывает, что кнопка нажата.

function gameLoop() {
  const gp = navigator.getGamepads()[0];

  if (gp.buttons[0].value > 0 || gp.buttons[0].pressed) {
    b--;
  } else if (gp.buttons[1].value > 0 || gp.buttons[1].pressed) {
    a++;
  } else if (gp.buttons[2].value > 0 || gp.buttons[2].pressed) {
    b++;
  } else if (gp.buttons[3].value > 0 || gp.buttons[3].pressed) {
    a--;
  }

  ball.style.left = `${a * 2}px`; // ball is a UI widget
  ball.style.top = `${b * 2}px`;

  requestAnimationFrame(gameLoop);
}

Спецификации

Спецификация
Gamepad
# gamepadbutton-interface

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
GamepadButton 21 12 29 15 10.1 25 32 14 10.3 1.5 4.4
pressed 21 12 29 15 10.1 25 32 14 10.3 1.5 4.4
secure_context_required 86 86 91 72 Нет 86 91 Нет Нет Нет Нет
touched 73 15 55 60 Нет 73 55 52 Нет 11.0 73
value 21 12 29 15 10.1 25 32 14 10.3 1.5 4.4

См. также

Использование API геймпада

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton

Spec-Zone.ru

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