Spec-Zone.ru › Web APIs

Джойстик: свойство buttons

Базовая Широко доступная

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

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

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

Свойство buttons интерфейса Gamepad возвращает массив объектов gamepadButton, представляющих кнопки, присутствующие на устройстве.

Каждый элемент массива равен 0 , если кнопка не нажата, и отличен от нуля (обычно 1.0) если кнопка нажата.

Каждый объект gamepadButton имеет два свойства:

pressed

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

value

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

Значение

Массив объектов gamepadButton.

Примеры

В зависимости от типа кнопки, нам нужно получить доступ к свойствам GamepadButton.value или 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
# dom-gamepad-buttons

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

Рабочий стол Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
buttons 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/Gamepad/buttons

Spec-Zone.ru

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