From d8b1411a3e6c07994d6736c7c14d8c36403b6e67 Mon Sep 17 00:00:00 2001 From: Nathan Kunicki Date: Sat, 16 Apr 2016 15:56:08 +0100 Subject: [PATCH] Added wasPressed as well as wasReleased --- package.json | 2 +- src/classes/keyboardinput.js | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 824ead8..9e2a78a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "momentumengine", - "version": "0.5.1", + "version": "0.6.0", "description": "An ES6 game and animation engine.", "main": "src/es6.js", "repository": { diff --git a/src/classes/keyboardinput.js b/src/classes/keyboardinput.js index f26e138..e0a0929 100644 --- a/src/classes/keyboardinput.js +++ b/src/classes/keyboardinput.js @@ -99,7 +99,8 @@ const KeyConsts = { }; -let wasReleased = {}; +let wasReleased = {}, + wasPressed = {}; class KeyboardInput { @@ -125,14 +126,29 @@ class KeyboardInput { console.log("[MomentumEngine] WARNING: MomentumEngine.Classes.KeyboardInput.isPressed is deprecated. Use isDown instead.") return !!this._keyState[keyCode]; } + isDown (keyCode) { return !!this._keyState[keyCode]; } + wasPressed (keyCode) { + let pressed = !!wasPressed[keyCode]; + + if (pressed) { + wasPressed[keyCode] = false; + } + + return pressed; + + } + + + wasReleased (keyCode) { + let pressed = !!wasReleased[keyCode]; if (pressed) { @@ -145,12 +161,14 @@ class KeyboardInput { _keyDownHandler (event) { wasReleased[event.keyCode] = false; + wasPressed[event.keyCode] = true; this._keyState[event.keyCode] = true; } _keyUpHandler (event) { wasReleased[event.keyCode] = true; + wasPressed[event.keyCode] = false; this._keyState[event.keyCode] = false; }