seed-engine
Version:
A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules.
376 lines (353 loc) • 26.7 kB
HTML
<html>
<head>
<meta charset="utf-8">
<base data-ice="baseUrl" href="../../../">
<title data-ice="title">src/manager/InputManager.js | seed-engine</title>
<link type="text/css" rel="stylesheet" href="css/style.css">
<link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
<script src="script/prettify/prettify.js"></script>
<script src="script/manual.js"></script>
<meta name="description" content="A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules."><meta property="twitter:card" content="summary"><meta property="twitter:title" content="seed-engine"><meta property="twitter:description" content="A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules."></head>
<body class="layout-container" data-ice="rootContainer">
<header>
<a href="./">Home</a>
<a href="identifiers.html">Reference</a>
<a href="source.html">Source</a>
<a href="test.html" data-ice="testLink">Test</a>
<div class="search-box">
<span>
<img src="./image/search.png">
<span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
</span>
<ul class="search-result"></ul>
</div>
<a style="position:relative; top:3px;" href="https://github.com/JaegarSarauer/SeedGameEngine"><img width="20px" src="./image/github.png"></a></header>
<nav class="navigation" data-ice="nav"><div>
<ul>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Engine.js~_Engine.html">_Engine</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-Engine">Engine</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#base">base</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/base/Updateable.js~Updateable.html">Updateable</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#component">component</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Animation.js~Animation.html">Animation</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Audio.js~Audio.html">Audio</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/BoxCollider.js~BoxCollider.html">BoxCollider</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/CircleCollider.js~CircleCollider.html">CircleCollider</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/ClickController.js~ClickController.html">ClickController</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Collider.js~Collider.html">Collider</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Collider2D.js~Collider2D.html">Collider2D</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Component.js~Component.html">Component</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Controller.js~Controller.html">Controller</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Physics.js~Physics.html">Physics</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Physics2D.js~Physics2D.html">Physics2D</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Renderable.js~Renderable.html">Renderable</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Renderable2D.js~Renderable2D.html">Renderable2D</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Renderable2DGrid.js~Renderable2DGrid.html">Renderable2DGrid</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Renderable2DMultitex.js~Renderable2DMultitex.html">Renderable2DMultitex</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/RenderableSquare.js~RenderableSquare.html">RenderableSquare</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/RenderableText.js~RenderableText.html">RenderableText</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/TopDownController.js~TopDownController.html">TopDownController</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/component/Transform.js~Transform.html">Transform</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#const">const</a><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-DEFAULT_F">DEFAULT_F</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-TILEMAP_F">TILEMAP_F</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-KeyCode">KeyCode</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-DEFAULT_V">DEFAULT_V</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#internal">internal</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/internal/Bounds.js~Bounds.html">Bounds</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/internal/Color.js~Color.html">Color</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/internal/Point.js~Point.html">Point</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/internal/PostBoard.js~PostBoard.html">PostBoard</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#manager">manager</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/AudioManager.js~_AudioManager.html">_AudioManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/DOMManager.js~_DOMManager.html">_DOMManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/EngineManager.js~_EngineManager.html">_EngineManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/InputManager.js~_InputManager.html">_InputManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/Manager.js~Manager.html">Manager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/PersistentManager.js~_PersistentManager.html">_PersistentManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/PhysicsManager.js~_PhysicsManager.html">_PhysicsManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/ProgramManager.js~_ProgramManager.html">_ProgramManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/RenderManager.js~_RenderManager.html">_RenderManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/SceneManager.js~_SceneManager.html">_SceneManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/TextureManager.js~_TextureManager.html">_TextureManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/UIManager.js~_UIManager.html">_UIManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/manager/UpdateableManager.js~_UpdateableManager.html">_UpdateableManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-AudioManager">AudioManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-DOMManager">DOMManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-EngineManager">EngineManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-InputManager">InputManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-PersistentManager">PersistentManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-PhysicsManager">PhysicsManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-ProgramManager">ProgramManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-RenderManager">RenderManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-SceneManager">SceneManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-TextureManager">TextureManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-UIManager">UIManager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-UpdateableManager">UpdateableManager</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#object">object</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/object/GameObject.js~GameObject.html">GameObject</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/object/PersistentObject.js~PersistentObject.html">PersistentObject</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/object/SceneObject.js~SceneObject.html">SceneObject</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#prefab-ui">prefab/ui</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/prefab/ui/UIButton.js~UIButton.html">UIButton</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/prefab/ui/UIElement.js~UIElement.html">UIElement</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/prefab/ui/UIPanel.js~UIPanel.html">UIPanel</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/prefab/ui/UIText.js~UIText.html">UIText</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/prefab/ui/UITextInput.js~UITextInput.html">UITextInput</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#render">render</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/render/Viewport.js~Viewport.html">Viewport</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#render-webgl">render/WebGL</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/render/WebGL/Matrix.js~Matrix.html">Matrix</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/render/WebGL/Matrix3.js~Matrix3.html">Matrix3</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#scene">scene</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/scene/BasicScene.js~BasicScene.html">BasicScene</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/scene/Scene.js~Scene.html">Scene</a></span></span></li>
<li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#utils">utils</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/Loader.js~Loader.html">Loader</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/Messager.js~Messager.html">Messager</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-degToRad">degToRad</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-radToDeg">radToDeg</a></span></span></li>
</ul>
</div>
</nav>
<div class="content" data-ice="content"><h1 data-ice="title">src/manager/InputManager.js</h1>
<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import Manager from './Manager';
import DOMManager from './DOMManager';
import Messager from '../utils/Messager';
import KeyCode from '../const/KeyCode';
import { SceneManager, Point } from '../entry';
/**
* A manager class intended to manage the javascript callback associated with the DOM.
* The InputManager filters general DOM events such as key down, key up, left and right click.
* The manager sorts events into referenceable lists for components to reference each game tick.
*
* In result, the InputManager creates a bridge between the DOM and Engine. Components should use the
* `is` functions to determine if a specific character is down for that game tick.
*
* If you want to listen to all characters, for example a textbox input, use events instead. To listen to events,
* use InputManager.events to access the event. Events are defined in InputManager.EVENT. See Messager.js for more info
* on listening to events.
*/
export class _InputManager extends Manager {
/**
* Constructor. Initializes Messager, event definitons, and
* key and mouse states.
*/
constructor() {
super();
this.events = new Messager();
this.EVENT = {
LEFT_PRESSED: 'mouseLeftPressed',
LEFT_RELEASED: 'mouseLeftReleased',
RIGHT_PRESSED: 'mouseRightPressed',
RIGHT_RELEASED: 'mouseRightReleased',
MOUSE_MOVE: 'mouseMove',
KEY_DOWN: 'keyDown',
KEY_UP: 'keyUp',
KEY: 'keyDownRepeat',
};
this.KEY_DOWN = [];
this.KEY_PRESSED = [];
this.KEY_UP = [];
this.LEFT_PRESSED = [];
this.LEFT_RELEASED = [];
this.RIGHT_PRESSED = [];
this.RIGHT_RELEASED = [];
const AllKeys = 256;
for (let i = 0; i < AllKeys; i++) {
this.KEY_DOWN[i] = false;
this.KEY_PRESSED[i] = false;
this.KEY_UP[i] = false;
}
}
/**
* Returns true if the key represented by this KeyCode is pressed down on
* this game tick. Does not repeat each game tick. Must be released to re-trigger.
* The `isKeyPressed()` will also return true when this function does.
*
* @param {KeyCode} KeyCode Keycode enum which represents a character by number.
*
* @returns {boolean} Is this key down.
*/
isKeyDown(KeyCode) {
return this.KEY_DOWN[KeyCode];
}
/**
* Returns true if the key represented by this KeyCode is held down on
* this game tick. Repeats each game tick it is held down.
*
* @param {KeyCode} KeyCode Keycode enum which represents a character by number.
*
* @returns {boolean} Is this key pressed (held down).
*/
isKeyPressed(KeyCode) {
return this.KEY_PRESSED[KeyCode];
}
/**
* Returns true if the key represented by this KeyCode is released on
* this game tick.
*
* @param {KeyCode} KeyCode Keycode enum which represents a character by number.
*
* @returns {boolean} Is this key released.
*/
isKeyUp(KeyCode) {
return this.KEY_UP[KeyCode];
}
/**
* Called by the EngineManager. Not intended to be referenced.
* Sets up event listeners on the DOM.
*/
start() {
DOMManager.canvas.addEventListener('mouseup', (ev) => {
ev.preventDefault();
let event = {
x: ev.offsetX * DOMManager.canvasDPIWidth,
y: ev.offsetY * DOMManager.canvasDPIHeight,
shiftHeld: ev.shiftKey,
ctrlHeld: ev.ctrlKey,
};
let curScene = SceneManager.getCurrentScene();
if (curScene != null) {
for (let i = 0; i < curScene.viewports.length; i++) {
if (curScene.viewports[i].getBounds().isInBounds(new Point(event.x, event.y))) {
let relEvent = Object.assign({}, event);
relEvent.x -= curScene.viewports[i].getBounds().p1.x;
relEvent.y -= curScene.viewports[i].getBounds().p1.y;
if (ev.button == 0) {
this.LEFT_RELEASED[i].push(relEvent);
} else if (ev.button == 2) {
this.RIGHT_RELEASED[i].push(relEvent);
}
}
}
}
if (ev.button == 0) {
this.events.set(this.EVENT.LEFT_RELEASED, event);
} else if (ev.button == 2) {
this.events.set(this.EVENT.RIGHT_RELEASED, event);
}
})
DOMManager.canvas.addEventListener('mousedown', (ev) => {
ev.preventDefault();
let event = {
x: ev.offsetX * DOMManager.canvasDPIWidth,
y: ev.offsetY * DOMManager.canvasDPIHeight,
shiftHeld: ev.shiftKey,
ctrlHeld: ev.ctrlKey,
};
let curScene = SceneManager.getCurrentScene();
if (curScene != null) {
for (let i = 0; i < curScene.viewports.length; i++) {
if (curScene.viewports[i].getBounds().isInBounds(new Point(event.x, event.y))) {
let relEvent = Object.assign({}, event);
relEvent.x -= curScene.viewports[i].getBounds().p1.x;
relEvent.y -= curScene.viewports[i].getBounds().p1.y;
if (ev.button == 0) {
this.LEFT_PRESSED[i].push(relEvent);
} else if (ev.button == 2) {
this.RIGHT_PRESSED[i].push(relEvent);
}
}
}
}
if (ev.button == 0) {
this.events.set(this.EVENT.LEFT_PRESSED, event);
} else if (ev.button == 2) {
this.events.set(this.EVENT.RIGHT_PRESSED, event);
}
})
DOMManager.canvas.addEventListener('mousemove', (ev) => {
ev.preventDefault();
let event = {
x: ev.offsetX * DOMManager.canvasDPIWidth,
y: ev.offsetY * DOMManager.canvasDPIHeight,
shiftHeld: ev.shiftKey,
ctrlHeld: ev.ctrlKey,
};
let curScene = SceneManager.getCurrentScene();
if (curScene != null) {
for (let i = 0; i < curScene.viewports.length; i++) {
if (curScene.viewports[i].getBounds().isInBounds(new Point(event.x, event.y))) {
event.x -= curScene.viewports[i].getBounds().p1.x;
event.y -= curScene.viewports[i].getBounds().p1.y;
event.viewport = i;
break;
}
}
}
this.events.set(this.EVENT.MOUSE_MOVE, event);
})
//right click manager
DOMManager.canvas.oncontextmenu = (ev) => {
ev.preventDefault();
};
//Key down manager
document.addEventListener('keydown', (event) => {
event.preventDefault();
let code = event.which || event.keyCode;
this.KEY_PRESSED[code] = true;
if (!event.repeat) {
this.KEY_DOWN[code] = true;
this.events.set(this.EVENT.KEY_DOWN, {
key: event.key,
code,
shiftHeld: event.shiftKey,
ctrlHeld: event.ctrlKey,
repeat: event.repeat,
});
}
this.events.set(this.EVENT.KEY, {
key: event.key,
code,
shiftHeld: event.shiftKey,
ctrlHeld: event.ctrlKey,
repeat: event.repeat,
});
});
//Key up manager
document.addEventListener('keyup', (event) => {
event.preventDefault();
let code = event.which || event.keyCode;
this.KEY_DOWN[code] = false;
this.KEY_PRESSED[code] = false;
this.KEY_UP[code] = true;
this.events.set(this.EVENT.KEY_UP, {
key: event.key,
code,
shiftHeld: event.shiftKey,
ctrlHeld: event.ctrlKey,
repeat: event.repeat,
});
});
}
/**
* Managed by the EngineManager. Do not call directly. Updates character and mouse
* inputs.
*/
update() {
this.KEY_DOWN = [];
this.KEY_UP = [];
this.LEFT_PRESSED = [];
this.LEFT_RELEASED = [];
this.RIGHT_PRESSED = [];
this.RIGHT_RELEASED = [];
let scene = null;
if ((scene = SceneManager.getCurrentScene()) == null)
return;
for (let i = 0; i < scene.viewports.length; i++) {
this.LEFT_PRESSED.push([]);
this.LEFT_RELEASED.push([]);
this.RIGHT_PRESSED.push([]);
this.RIGHT_RELEASED.push([]);
}
}
}
/**
* Singleton reference to the Input Manager.
*/
const InputManager = new _InputManager();
export default InputManager;</code></pre>
</div>
<footer class="footer">
Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(1.1.0)</span><img src="./image/esdoc-logo-mini-black.png"></a>
</footer>
<script src="script/search_index.js"></script>
<script src="script/search.js"></script>
<script src="script/pretty-print.js"></script>
<script src="script/inherited-summary.js"></script>
<script src="script/test-summary.js"></script>
<script src="script/inner-link.js"></script>
<script src="script/patch-for-local.js"></script>
</body>
</html>