forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgamepad-tests.ts
72 lines (63 loc) · 2.65 KB
/
gamepad-tests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/// <reference path="gamepad.d.ts" />
()=>{
function runAnimation()
{
window.requestAnimationFrame(runAnimation);
var gamepads = navigator.getGamepads();
for (var i = 0; i < gamepads.length; ++i)
{
var pad = gamepads[i];
// todo; simple demo of displaying pad.axes and pad.buttons
}
}
window.requestAnimationFrame(runAnimation);
};
()=>{
window.addEventListener('GamepadConnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' connected!');
}, false);
window.addEventListener('GamepadDisconnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' disconnected!');
}, false);
window.addEventListener('webkitGamepadConnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' connected!');
}, false);
window.addEventListener('webkitGamepadDisconnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' disconnected!');
}, false);
window.addEventListener('mozGamepadConnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' connected!');
}, false);
window.addEventListener('mozGamepadDisconnected', (e: GamepadEvent)=>{
console.log('Gamepad ' + e.gamepad.index + ' disconnected!');
}, false);
var requestAnimationFrame = window.requestAnimationFrame || window["mozRequestAnimationFrame"];
var getGamepads = navigator.getGamepads || navigator.webkitGetGamepads;
if(getGamepads){
function runAnimation()
{
requestAnimationFrame.call(window, runAnimation);
var gamepads: GamepadList = getGamepads.call(navigator);
for(var i = 0; i < gamepads.length; i++){
var pad: Gamepad = gamepads[i];
if(pad){
for (var k = 0; k < pad.buttons.length; k++)
{
var button = pad.buttons[k];
if(button !== 0){
console.log('pad[' + pad.index + ']: ' + 'time=' + pad.timestamp + ' id="' + pad.id + '" button[' + k + '] = ' + button);
}
}
for (var k = 0; k < pad.axes.length; k++)
{
var axis = pad.axes[k];
if(Math.abs(axis) > 0.1){
console.log('pad[' + pad.index + ']: ' + 'time=' + pad.timestamp + ' id="' + pad.id + '" axis[' + k + '] = ' + axis);
}
}
}
}
}
runAnimation();
}
}();