Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/excaliburjs/Excalibur. 🎮 Your friendly TypeScript 2D game engine for the web 🗡️ excaliburjs.com
excalibur excaliburjs game-development game-engine game-framework gamedev games html5-canvas typescript
Something went wrong. Try again.
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import type { Engine } from '../engine';import { Gamepads } from './gamepad';import { InputMapper } from './input-mapper';import { Keyboard } from './keyboard';import { PointerEventReceiver } from './pointer-event-receiver';
export interface InputHostOptions { pointerTarget: Document | HTMLCanvasElement; grabWindowFocus: boolean; global?: GlobalEventHandlers | (() => GlobalEventHandlers); engine: Engine;}
export class InputHost { private _enabled = true;
keyboard: Keyboard; pointers: PointerEventReceiver; gamepads: Gamepads; inputMapper: InputMapper;
constructor(options: InputHostOptions) { const { pointerTarget, grabWindowFocus, engine, global } = options; this.keyboard = new Keyboard(); this.pointers = new PointerEventReceiver(pointerTarget, engine); this.gamepads = new Gamepads();
if (global) { this.keyboard.init({ global, grabWindowFocus }); } this.pointers.init({ grabWindowFocus }); this.gamepads.init(); this.inputMapper = new InputMapper({ keyboard: this.keyboard, pointers: this.pointers, gamepads: this.gamepads }); }
get enabled() { return this._enabled; }
toggleEnabled(enabled: boolean) { this._enabled = enabled; this.keyboard.toggleEnabled(this._enabled); this.pointers.toggleEnabled(this._enabled); this.gamepads.toggleEnabled(this._enabled); }
update() { if (this._enabled) { this.inputMapper.execute(); this.keyboard.update(); this.gamepads.update(); } }
clear() { this.keyboard.clear(); this.pointers.clear(); // this.gamepads.clear(); }}