геймпад javascript не обновляется должным образом - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь заставить браузер сообщать о состоянии моего контроллера XBOX. Однако после первого нажатия кнопки кажется, что он "застревает". Что я делаю не так?

<body>
    <script>
        var gamepad = false;
        var gamepadDIV = []

        window.addEventListener("gamepadconnected", function(e) {
            gamepad = e.gamepad;

            for (i = 0; i < gamepad.buttons.length + gamepad.axes.length; i++) {
                gamepadDIV.push(document.createElement('div'));
                document.body.appendChild(gamepadDIV[i]);
            }

        });

        window.addEventListener("gamepaddisconnected", function() {
            gamepad = false;
        });


        function animation() {

            if (gamepad != false) {

                for (i = 0; i < gamepad.buttons.length; i++) {
                    gamepadDIV[i].innerHTML = gamepad.buttons[i].pressed;
                }

                for (i = gamepad.buttons.length; i < gamepad.buttons.length + gamepad.axes.length; i++) {
                    gamepadDIV[i].innerHTML = gamepad.axes[i - gamepad.buttons.length].value;
                }

            }

            window.requestAnimationFrame(animation);
        }
        animation();

    </script>
</body>
...