56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
function KeyboardShortcut() {
|
|
this.keyHandlerMapper = {};
|
|
|
|
game.input.keyboard.addCallbacks(this, this.keyDown, this.keyUp, null);
|
|
};
|
|
|
|
KeyboardShortcut.prototype.addCallback = function(keyCode, keyDownHandler, keyUpHandler, callerClassName) {
|
|
if(this.keyHandlerMapper[keyCode] != undefined) {
|
|
this.keyHandlerMapper[keyCode] = null;
|
|
}
|
|
|
|
this.keyHandlerMapper[keyCode] = {
|
|
"keyDownHandler": keyDownHandler,
|
|
"keyUpHandler": keyUpHandler,
|
|
"callerClassName": callerClassName
|
|
}
|
|
|
|
// console.log(this.keyHandlerMapper);
|
|
}
|
|
|
|
KeyboardShortcut.prototype.keyDown = function(char) {
|
|
// var keyCode = char.code;
|
|
var keyCode = char.keyCode;
|
|
// console.log(keyCode + " is pressed");
|
|
|
|
if(this.keyHandlerMapper[keyCode] == undefined)
|
|
return;
|
|
|
|
var keyMapper = this.keyHandlerMapper[keyCode];
|
|
var keyDownHandler = keyMapper["keyDownHandler"];
|
|
if(keyDownHandler == undefined)
|
|
return;
|
|
|
|
if(isDebugMode())
|
|
console.log(keyCode + " key is down (" + keyMapper["callerClassName"] + ")");
|
|
keyDownHandler();
|
|
}
|
|
|
|
KeyboardShortcut.prototype.keyUp = function(char) {
|
|
// var keyCode = char.code;
|
|
var keyCode = char.keyCode;
|
|
// console.log(keyCode + " is up");
|
|
|
|
if(this.keyHandlerMapper[keyCode] == undefined)
|
|
return;
|
|
|
|
var keyMapper = this.keyHandlerMapper[keyCode];
|
|
var keyUpHandler = keyMapper["keyUpHandler"];
|
|
if(keyUpHandler == undefined)
|
|
return;
|
|
|
|
if(isDebugMode())
|
|
console.log(keyCode + " key is up (" + keyMapper["callerClassName"] + ")");
|
|
keyUpHandler();
|
|
}
|