Я пытаюсь расширить родной GamepadAPI для включения пользовательского кода контроллера.
Используя TypeScript, я реализовал простую функцию для отправки события «gamepadconnected».
// simulate gamepadconnected event
function dispatchGamepadConnectedEvent() {
let gamepad = Object.create(Gamepad.prototype);
console.log(gamepad);
let event = new GamepadEvent('gamepadconnected', {
gamepad: gamepad
})
window.dispatchEvent(event);
console.log('Gamepad connect event dispatched.');
}
Однако при отправке события я получаю сообщение об ошибке:
Gamepad {}axes: (...)buttons: (...)connected: (...)id: (...)index: (...)mapping: (...)timestamp: (...)vibrationActuator: (...)__proto__: Gamepad
extension.ts:37 Uncaught TypeError: Failed to construct 'GamepadEvent': member gamepad is not of type Gamepad.
at dispatchGamepadConnectedEvent (extension.ts:37)
at extension.ts:48
Несмотря на то, что экземпляр объекта Gamepad выглядит нормально, тип Gamepad неверен.
Почему это так? Как я могу создать новый правильный объект Gamepad для запуска нативного события?