From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/web/api/gamepad/axes/index.html | 70 ++++++++++++++++++++ files/ru/web/api/gamepad/buttons/index.html | 91 ++++++++++++++++++++++++++ files/ru/web/api/gamepad/connected/index.html | 48 ++++++++++++++ files/ru/web/api/gamepad/displayid/index.html | 58 +++++++++++++++++ files/ru/web/api/gamepad/id/index.html | 59 +++++++++++++++++ files/ru/web/api/gamepad/index.html | 92 +++++++++++++++++++++++++++ files/ru/web/api/gamepad/index/index.html | 50 +++++++++++++++ files/ru/web/api/gamepad/mapping/index.html | 48 ++++++++++++++ files/ru/web/api/gamepad/timestamp/index.html | 52 +++++++++++++++ 9 files changed, 568 insertions(+) create mode 100644 files/ru/web/api/gamepad/axes/index.html create mode 100644 files/ru/web/api/gamepad/buttons/index.html create mode 100644 files/ru/web/api/gamepad/connected/index.html create mode 100644 files/ru/web/api/gamepad/displayid/index.html create mode 100644 files/ru/web/api/gamepad/id/index.html create mode 100644 files/ru/web/api/gamepad/index.html create mode 100644 files/ru/web/api/gamepad/index/index.html create mode 100644 files/ru/web/api/gamepad/mapping/index.html create mode 100644 files/ru/web/api/gamepad/timestamp/index.html (limited to 'files/ru/web/api/gamepad') diff --git a/files/ru/web/api/gamepad/axes/index.html b/files/ru/web/api/gamepad/axes/index.html new file mode 100644 index 0000000000..eb16be54c3 --- /dev/null +++ b/files/ru/web/api/gamepad/axes/index.html @@ -0,0 +1,70 @@ +--- +title: Gamepad.axes +slug: Web/API/Gamepad/axes +translation_of: Web/API/Gamepad/axes +--- +

{{APIRef("Gamepad API")}}

+ +

Свойство Gamepad.axes интерфейса {{domxref("Gamepad") }} возвращает массив, показывающий состояние элементов управления, имеющих оси направления, такие как джойстики на геймпаде.

+ +

Каждый элемент массива - дробное число в диапазоне от -1.0 до 1.0, показывающий состояние от самого маленького значения (-1.0) до самого высокого (1.0).

+ +

Синтаксис

+ +
readonly    attribute double[]            axes;
+ +

Пример

+ +
function gameLoop() {
+  if(navigator.webkitGetGamepads) {
+    var gp = navigator.webkitGetGamepads()[0];
+  } else {
+    var gp = navigator.getGamepads()[0];
+  }
+
+  if(gp.axes[0] != 0) {
+    b -= gp.axes[0];
+  } else if(gp.axes[1] != 0) {
+    a += gp.axes[1];
+  } else if(gp.axes[2] != 0) {
+    b += gp.axes[2];
+  } else if(gp.axes[3] != 0) {
+    a -= gp.axes[3];
+  }
+
+  ball.style.left = a*2 + "px";
+  ball.style.top = b*2 + "px";
+
+  var start = rAF(gameLoop);
+};
+ +

Значение

+ +

Массив значений {{domxref("double") }} 

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("Gamepad", "#dom-gamepad-axes", "Gamepad.axes")}}{{Spec2("Gamepad")}}Initial definition
+ +

Browser compatibility

+ + + +

{{Compat("api.Gamepad.axes")}}

+ +

See also

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/buttons/index.html b/files/ru/web/api/gamepad/buttons/index.html new file mode 100644 index 0000000000..f17b3cc9d1 --- /dev/null +++ b/files/ru/web/api/gamepad/buttons/index.html @@ -0,0 +1,91 @@ +--- +title: Gamepad.buttons +slug: Web/API/Gamepad/buttons +translation_of: Web/API/Gamepad/buttons +--- +

{{APIRef("Gamepad API")}}

+ + + +

Свойство Gamepad.buttons интерфейса {{domxref("Gamepad") }} возвращает массив, сосотоящий из объектов {{domxref("gamepadButton")}}, представляющие кнопки, представленные на устройстве (геймпаде). 

+ +

Каждый элемент в массиве равен 0 если кнопка не нажата, и не-нуль (обычно 1.0) если нажата. Каждый объект {{domxref("gamepadButton")}} содержит два параметра: pressed и value:

+ + + +

Синтакс

+ +
readonly    attribute GamepadButton[]     buttons;
+ +

Пример

+ +

Приведенный код взят из моего (автора статьи) демо Gamepad API button (вы можете  Посмотреть демо, и посмотреть исходники на GitHub). Важно — в Chrome Navigator.getGamepads неободимо установить префикс webkit, и значения кнопки будут представлять из себя массив дробных чисел, тогда как в  Firefox Navigator.getGamepads нет необходимости устанавливать префикс, и значения будут представлять собой массив  объектов GamepadButton; Свойство GamepadButton.value или GamepadButton.pressed необходимо для получения состояния кнопки, в зависимости от от типа кнопки. В данном простом примере обрабатывается оба вида кнопок.

+ +
function gameLoop() {
+  if(navigator.webkitGetGamepads) {
+    var gp = navigator.webkitGetGamepads()[0];
+
+    if(gp.buttons[0] == 1) {
+      b--;
+    } else if(gp.buttons[1] == 1) {
+      a++;
+    } else if(gp.buttons[2] == 1) {
+      b++;
+    } else if(gp.buttons[3] == 1) {
+      a--;
+    }
+  } else {
+    var gp = navigator.getGamepads()[0];
+
+    if(gp.buttons[0].value > 0 || gp.buttons[0].pressed == true) {
+      b--;
+    } else if(gp.buttons[1].value > 0 || gp.buttons[1].pressed == true) {
+      a++;
+    } else if(gp.buttons[2].value > 0 || gp.buttons[2].pressed == true) {
+      b++;
+    } else if(gp.buttons[3].value > 0 || gp.buttons[3].pressed == true) {
+      a--;
+    }
+  }
+
+  ball.style.left = a*2 + "px";
+  ball.style.top = b*2 + "px";
+
+  var start = window.requestAnimationFrame(gameLoop);
+};
+ +

Значение

+ +

Массив из объектов {{domxref("gamepadButton")}}

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("Gamepad", "#dom-gamepad-buttons", "Gamepad.buttons")}}{{Spec2("Gamepad")}}Initial definition
+ +

Browser compatibility

+ + + +

{{Compat("api.Gamepad.buttons")}}

+ +
+ +

См. также

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/connected/index.html b/files/ru/web/api/gamepad/connected/index.html new file mode 100644 index 0000000000..8170c0f537 --- /dev/null +++ b/files/ru/web/api/gamepad/connected/index.html @@ -0,0 +1,48 @@ +--- +title: Gamepad.connected +slug: Web/API/Gamepad/connected +translation_of: Web/API/Gamepad/connected +--- +

{{APIRef("Gamepad API")}}

+ +

Свойство Gamepad.connected интерфейса {{domxref("Gamepad") }} возвращает логическое значение того, подключен ли всё ещё геймпад к системе.

+ +

Если геймпад подключен - значение равно true; если нет - false.

+ +

Синтаксис

+ +
 readonly    attribute boolean             connected;
+ +

Пример

+ +
var gp = navigator.getGamepads()[0];
+console.log(gp.connected);
+ +

Значение

+ +

{{jsxref("Boolean")}}.

+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Gamepad", "#widl-Gamepad-connected", "Gamepad.connected")}}{{Spec2("Gamepad")}}Первоначальное определение
+ +

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

+ +

{{Compat("api.Gamepad.connected")}}

+ +

Смотрите также

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/displayid/index.html b/files/ru/web/api/gamepad/displayid/index.html new file mode 100644 index 0000000000..0b3f71009e --- /dev/null +++ b/files/ru/web/api/gamepad/displayid/index.html @@ -0,0 +1,58 @@ +--- +title: Gamepad.displayId +slug: Web/API/Gamepad/displayId +tags: + - Виртуальная реальность +translation_of: Web/API/Gamepad/displayId +--- +

{{DefaultAPISidebar("WebVR API")}}{{SeeCompatTable}}

+ +

Свойство displayId только для чтения {{domxref("Gamepad")}} возвращаемый интерфейс {{domxref("VRDisplay.displayId")}} связанный с {{domxref("VRDisplay")}} —  VRDisplay  (дисплей виртуальной реальности) в котором геймпад управляет отображаемой сценой.

+ +

Геймпад считается связанным с {{domxref("VRDisplay")}} если он сообщает о позиции, которая находится в том же месте, что и {{domxref("VRDisplay.pose")}}.

+ +

Syntax

+ +
var myDisplayId = gamepadInstance.displayId;
+ +

Value

+ +

Число, представляющее связанный интерфейс {{domxref("VRDisplay.displayId")}}.Если число равно 0, то геймпад не связан с дисплеем VR( виртуальной реальности).

+ +

Examples

+ +
window.addEventListener("gamepadconnected", function(e) {
+  if(!e.gamepad.displayId) {
+    console.log('Gamepad connected');
+  } else {
+    console.log('Gamepad connected, associated with VR display ' + e.gamepad.displayId);
+  }
+});
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebVR 1.1', '#gamepad-getvrdisplays-attribute', 'displayId')}}{{Spec2('WebVR 1.1')}}Initial definition
+ +

Browser compatibility

+ +

{{Compat("api.Gamepad.displayId")}}

+ +

See also

+ + diff --git a/files/ru/web/api/gamepad/id/index.html b/files/ru/web/api/gamepad/id/index.html new file mode 100644 index 0000000000..ef66df6574 --- /dev/null +++ b/files/ru/web/api/gamepad/id/index.html @@ -0,0 +1,59 @@ +--- +title: Gamepad.id +slug: Web/API/Gamepad/id +translation_of: Web/API/Gamepad/id +--- +
{{APIRef("Gamepad API")}}
+ +

Свойство Gamepad.id интерфейса {{domxref("Gamepad") }} возвращает строку, содержащую некоторую информацию о контроллере.

+ +

Существующий синтаксис не стандартизирован, но в Firefox эта строка представляет собой три значения, разделенные тире (-):

+ + + +

Например, PS2 контроллер вернет 810-3-USB Gamepad.

+ +

Эта информация позволяет вам найти соответствие для элементов управления контроллера, а также, отобразить полезную информацию для пользователя.

+ +

Синтаксис

+ +
readonly    attribute DOMString           id;
+ +

Пример

+ +
window.addEventListener("gamepadconnected", function() {
+  var gp = navigator.getGamepads()[0];
+  gamepadInfo.innerHTML = "Gamepad connected at index " + gp.index + ": " + gp.id + ".";
+});
+ +

Значение

+ +

{{jsxref("String")}}.

+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Gamepad", "#widl-Gamepad-id", "Gamepad.id")}}{{Spec2("Gamepad")}}Первоначальное определение
+ +

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

+ +

{{Compat("api.Gamepad.id")}}

+ +

Смотрите также

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/index.html b/files/ru/web/api/gamepad/index.html new file mode 100644 index 0000000000..2059e361da --- /dev/null +++ b/files/ru/web/api/gamepad/index.html @@ -0,0 +1,92 @@ +--- +title: Gamepad +slug: Web/API/Gamepad +translation_of: Web/API/Gamepad +--- +
{{APIRef("Gamepad API")}}
+ +

Интерфейс Gamepad Gamepad API определяет отдельный геймпад или контроллер, предоставляющий доступ к такой информации, как: нажатие кнопок, позиции осей, и id.

+ +

Объект Gamepad может быть возвращен в одном из двух случаев: как свойство gamepad событий {{event("gamepadconnected")}} и {{event("gamepaddisconnected")}}, или считыванием любой позиции в массиве, возвращенном методом {{domxref("Navigator.getGamepads()")}}.

+ +

Свойства

+ +
+
{{domxref("Gamepad.displayId")}} {{readonlyInline}}
+
Возвращает {{domxref("VRDisplay.displayId")}} связанный с {{domxref("VRDisplay")}} (при необходимости) — VRDisplay отображаемая область которого управляется геймпадом.
+
{{domxref("Gamepad.id")}} {{readonlyInline}}
+
{{domxref("DOMString")}} содержит идентификационную информацию о контроллере.
+
{{domxref("Gamepad.index")}} {{readonlyInline}}
+
Целое автоинкрементируемое значение, уникальное для каждого устройства, подключенного в данный момент к системе.
+
{{domxref("Gamepad.mapping")}} {{readonlyInline}}
+
Строка, указывающая, переназначил ли браузер элементы управления устройства на уже известный шаблон.
+
{{domxref("Gamepad.connected")}} {{readonlyInline}}
+
Логическое свойство показывающее, подключен ли геймпад к системе в данный момент.
+
{{domxref("Gamepad.buttons")}} {{readonlyInline}}
+
Массив объектов {{domxref("gamepadButton")}} представляющих кнопки устройства.
+
{{domxref("Gamepad.axes")}} {{readonlyInline}}
+
Массив, представляющий элементы управления осями устройства (например, аналоговые стики).
+
{{domxref("Gamepad.timestamp")}} {{readonlyInline}}
+
{{domxref("DOMHighResTimeStamp")}} представляет время последнего обновления данных геймпада.
+
+ +

Экспериментальные расширения для Gamepad

+ +

Следующие интерфейсы определены в спецификации {{SpecName("GamepadExtensions")}}, и предоставляют доступ к экспериментальным возможностям, таким как тактильная обратная связь (haptic feedback) и информация о положении WebVR контроллера.

+ +
+
{{domxref("Gamepad.hand")}} {{readonlyInline}}
+
Перечисляемое значение, которое определяет в какой руке находится контроллер.
+
{{domxref("Gamepad.hapticActuators")}} {{readonlyInline}}
+
Массив, содержащий объекты {{domxref("GamepadHapticActuator")}}, каждый из которых представляет собой аппаратные средства тактильной обратной связи (haptic feedbac) доступные для контроллера.
+
{{domxref("Gamepad.pose")}} {{readonlyInline}}
+
Объект {{domxref("GamepadPose")}} представляет информацию о положении WebVR контроллера (например, позиция и ориентация в 3D пространстве).
+
+ +

Пример

+ +
window.addEventListener("gamepadconnected", function(e) {
+  console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
+  e.gamepad.index, e.gamepad.id,
+  e.gamepad.buttons.length, e.gamepad.axes.length);
+});
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Gamepad", "#gamepad-interface", "Gamepad")}}{{Spec2("Gamepad")}}Первоначальное определение
{{SpecName('WebVR 1.1', '#gamepad-getvrdisplays-attribute', 'displayId')}}{{Spec2("WebVR 1.1")}}Определено свойство {{domxref("Gamepad.displayId")}}.
{{SpecName("GamepadExtensions", "#partial-gamepad-interface", "Gamepad extensions")}}{{Spec2("GamepadExtensions")}}Определены {{anch("Экспериментальные расширения для Gamepad")}}
+ +

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

+ + + +

{{Compat("api.Gamepad")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/gamepad/index/index.html b/files/ru/web/api/gamepad/index/index.html new file mode 100644 index 0000000000..2e51e57342 --- /dev/null +++ b/files/ru/web/api/gamepad/index/index.html @@ -0,0 +1,50 @@ +--- +title: Gamepad.index +slug: Web/API/Gamepad/index +translation_of: Web/API/Gamepad/index +--- +
{{APIRef("Gamepad API")}}
+ +

Свойство Gamepad.index интерфейса {{domxref("Gamepad") }} возвращает целое автоинкрементируемое значение, уникальное для каждого устройства, подключенного к системе.

+ +

Это может быть полезно для распознавания нескольких контроллеров; отключенный, и подключенный заново геймпад, будет иметь тот же индекс.

+ +

Синтаксис

+ +
readonly    attribute long                index;
+ +

Пример

+ +
window.addEventListener("gamepadconnected", function() {
+  var gp = navigator.getGamepads()[0];
+  gamepadInfo.innerHTML = "Gamepad connected at index " + gp.index + ": " + gp.id + ".";
+});
+ +

Значение

+ +

{{jsxref("Number") }}.

+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Gamepad", "#widl-Gamepad-index", "Gamepad.index")}}{{Spec2("Gamepad")}}Первоначальное определение
+ +

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

+ +

{{Compat("api.Gamepad.index")}}

+ +

Смотрите также

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/mapping/index.html b/files/ru/web/api/gamepad/mapping/index.html new file mode 100644 index 0000000000..5fad34e1b5 --- /dev/null +++ b/files/ru/web/api/gamepad/mapping/index.html @@ -0,0 +1,48 @@ +--- +title: Gamepad.mapping +slug: Web/API/Gamepad/mapping +translation_of: Web/API/Gamepad/mapping +--- +

{{APIRef("Gamepad API")}}

+ +

Свойство Gamepad.mapping интерфейса {{domxref("Gamepad")}} возвращает строковый индикатор, указывающий, изменил ли браузер элементы управления на уже известный шабон

+ +

На данный момент существует один поддерживаемый шаблон - standard gamepad. Если браузер позволяет поменять элементы управления в данном шаблоне, свойство  mapping будет установлено строко "standard".

+ +

Синтаксис

+ +
readonly    attribute DOMString           mapping;
+ +

Пример

+ +
var gp = navigator.getGamepads()[0];
+console.log(gp.mapping);
+ +

Значение

+ +

A {{domxref("string")}}.

+ +

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

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("Gamepad", "#dom-gamepad-mapping", "Gamepad.mapping")}}{{Spec2("Gamepad")}}Initial definition
+ +

Браузерная совместимость

+ +

{{Compat("api.Gamepad.mapping")}}

+ +

См. также

+ +

Using the Gamepad API

diff --git a/files/ru/web/api/gamepad/timestamp/index.html b/files/ru/web/api/gamepad/timestamp/index.html new file mode 100644 index 0000000000..e2352b126d --- /dev/null +++ b/files/ru/web/api/gamepad/timestamp/index.html @@ -0,0 +1,52 @@ +--- +title: Gamepad.timestamp +slug: Web/API/Gamepad/timestamp +translation_of: Web/API/Gamepad/timestamp +--- +
{{APIRef("Gamepad API")}}
+ +

Свойство Gamepad.timestamp интерфейса {{domxref("Gamepad")}} возвращает {{domxref("DOMHighResTimeStamp")}}, представляющий собой время последнего обновления геймпада.

+ +

Идея состоит в том, чтобы позволить разработчику определить, были ли изменены данные для axes и button на аппаратном обеспечении. Значение должно быть установлено относительно атрибута navigationStart интерфейса {{domxref("PerformanceTiming")}}. Значения монотонно увеличиваются, поэтому их можно сравнивать, чтобы определить порядок изменений, т.к. новые значения всегда будут больше или равны старым.

+ +
+

Примечание: В данный момент, это свойство нигде не поддерживается.

+
+ +

Синтаксис

+ +
readonly    attribute DOMHighResTimeStamp timestamp;
+ +

Пример

+ +
var gp = navigator.getGamepads()[0];
+console.log(gp.timestamp);
+ +

Значение

+ +

{{domxref("DOMHighResTimeStamp")}}.

+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Gamepad", "#widl-Gamepad-timestamp", "Gamepad.timestamp")}}{{Spec2("Gamepad")}}Первоначальное определение
+ +

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

+ +

{{Compat("api.Gamepad.timestamp")}}

+ +

Смотрите также

+ +

Using the Gamepad API

-- cgit v1.2.3-54-g00ecf