covid19-demo/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87a.../events-tools/inputtools.js

285 lines
7.6 KiB
JavaScript

/*
* GDevelop JS Platform
* Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the MIT License.
*/
/**
* Tools related to input ( Keyboard, mouse ), for events generated code.
*
* @memberof gdjs.evtTools
* @class input
* @static
* @private
*/
gdjs.evtTools.input = gdjs.evtTools.input || {};
/**
* Return true if the specified key is pressed
*
* @private
*/
gdjs.evtTools.input.isKeyPressed = function(runtimeScene, key) {
if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) {
return runtimeScene.getGame().getInputManager().isKeyPressed(gdjs.evtTools.input.keysNameToCode[key]);
}
return false;
};
/**
* Return true if the specified key was just released
*
* @private
*/
gdjs.evtTools.input.wasKeyReleased = function(runtimeScene, key) {
if (gdjs.evtTools.input.keysNameToCode.hasOwnProperty(key)) {
return runtimeScene.getGame().getInputManager().wasKeyReleased(gdjs.evtTools.input.keysNameToCode[key]);
}
return false;
};
/**
* Return the name of the last key pressed in the game
* @private
*/
gdjs.evtTools.input.lastPressedKey = function(runtimeScene) {
//Ensure _keysCodeToName is constructed
if (gdjs.evtTools.input._keysCodeToName === undefined) {
gdjs.evtTools.input._keysCodeToName = {};
var keysNameToCode = gdjs.evtTools.input.keysNameToCode;
for(var p in keysNameToCode) {
if (keysNameToCode.hasOwnProperty(p)) {
gdjs.evtTools.input._keysCodeToName[keysNameToCode[p]] = p;
}
}
}
var keyCode = runtimeScene.getGame().getInputManager().getLastPressedKey();
if (gdjs.evtTools.input._keysCodeToName.hasOwnProperty(keyCode)) {
return gdjs.evtTools.input._keysCodeToName[keyCode];
}
return "";
};
/**
* Hashmap associated each name of a key to its keyCode.
* @memberof gdjs.evtTools
*/
gdjs.evtTools.input.keysNameToCode = {
"a": 65,
"b": 66,
"c": 67,
"d": 68,
"e": 69,
"f": 70,
"g": 71,
"h": 72,
"i": 73,
"j": 74,
"k": 75,
"l": 76,
"m": 77,
"n": 78,
"o": 79,
"p": 80,
"q": 81,
"r": 82,
"s": 83,
"t": 84,
"u": 85,
"v": 86,
"w": 87,
"x": 88,
"y": 89,
"z": 90,
"Num0": 48,
"Num1": 49,
"Num2": 50,
"Num3": 51,
"Num4": 52,
"Num5": 53,
"Num6": 54,
"Num7": 55,
"Num8": 56,
"Num9": 57,
"Numpad0": 96,
"Numpad1": 97,
"Numpad2": 98,
"Numpad3": 99,
"Numpad4": 100,
"Numpad5": 101,
"Numpad6": 102,
"Numpad7": 103,
"Numpad8": 104,
"Numpad9": 105,
"RControl": 17,
"RShift": 16,
"RAlt": 18,
"LControl": 17,
"LShift": 16,
"LAlt": 18,
"LSystem": 91,
"RSystem": 91,
/*"Menu": sf::Keyboard::Menu ,
"LBracket": sf::Keyboard::LBracket ,
"RBracket": sf::Keyboard::RBracket ,
"SemiColon": sf::Keyboard::SemiColon ,
"Comma": sf::Keyboard::Comma ,
"Period": sf::Keyboard::Period ,
"Quote": sf::Keyboard::Quote ,
"Slash": sf::Keyboard::Slash ,
"BackSlash": sf::Keyboard::BackSlash ,
"Tilde": sf::Keyboard::Tilde ,
"Equal": sf::Keyboard::Equal ,
"Dash": sf::Keyboard::Dash,*/
"Space": 32,
"Return": 13,
"Back": 8,
"Tab": 9,
"PageUp": 33,
"PageDown": 34,
"End": 35,
"Home": 36,
"Delete": 46,
"Insert": 45,
"Escape": 27,
"Add": 107,
"Subtract": 109,
"Multiply": 106,
"Divide": 111,
"Left": 37,
"Up": 38,
"Right": 39,
"Down": 40,
"F1": 112,
"F2": 113,
"F3": 114,
"F4": 115,
"F5": 116,
"F6": 117,
"F7": 118,
"F8": 119,
"F9": 120,
"F10": 121,
"F11": 122,
"F12": 123,
"Pause": 19
};
gdjs.evtTools.input.anyKeyPressed = function(runtimeScene) {
return runtimeScene.getGame().getInputManager().anyKeyPressed();
};
gdjs.evtTools.input.isMouseButtonPressed = function(runtimeScene, button) {
if ( button === "Left" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(0);
if ( button === "Right" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(1);
if ( button === "Middle" ) return runtimeScene.getGame().getInputManager().isMouseButtonPressed(2);
return false;
};
gdjs.evtTools.input.isMouseButtonReleased = function(runtimeScene, button) {
if ( button === "Left" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(0);
if ( button === "Right" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(1);
if ( button === "Middle" ) return runtimeScene.getGame().getInputManager().isMouseButtonReleased(2);
return false;
};
gdjs.evtTools.input.hideCursor = function(runtimeScene) {
runtimeScene.getRenderer().hideCursor();
};
gdjs.evtTools.input.showCursor = function(runtimeScene) {
runtimeScene.getRenderer().showCursor();
};
gdjs.evtTools.input.getMouseWheelDelta = function(runtimeScene) {
return runtimeScene.getGame().getInputManager().getMouseWheelDelta();
};
gdjs.evtTools.input.isScrollingUp = function(runtimeScene) {
return runtimeScene.getGame().getInputManager().isScrollingUp();
};
gdjs.evtTools.input.isScrollingDown = function(runtimeScene) {
return runtimeScene.getGame().getInputManager().isScrollingDown();
};
gdjs.evtTools.input.getMouseX = function(runtimeScene, layer, camera) {
return runtimeScene.getLayer(layer).convertCoords(
runtimeScene.getGame().getInputManager().getMouseX(),
runtimeScene.getGame().getInputManager().getMouseY())[0];
};
gdjs.evtTools.input.getMouseY = function(runtimeScene, layer, camera) {
return runtimeScene.getLayer(layer).convertCoords(
runtimeScene.getGame().getInputManager().getMouseX(),
runtimeScene.getGame().getInputManager().getMouseY())[1];
};
gdjs.evtTools.input._cursorIsOnObject = function(obj, runtimeScene) {
return obj.cursorOnObject(runtimeScene);
};
gdjs.evtTools.input.cursorOnObject = function(objectsLists, runtimeScene, accurate, inverted) {
return gdjs.evtTools.object.pickObjectsIf(gdjs.evtTools.input._cursorIsOnObject,
objectsLists, inverted, runtimeScene);
};
gdjs.evtTools.input.getTouchX = function(runtimeScene, identifier, layer, camera) {
return runtimeScene.getLayer(layer).convertCoords(
runtimeScene.getGame().getInputManager().getTouchX(identifier),
runtimeScene.getGame().getInputManager().getTouchY(identifier))[0];
};
gdjs.evtTools.input.getTouchY = function(runtimeScene, identifier, layer, camera) {
return runtimeScene.getLayer(layer).convertCoords(
runtimeScene.getGame().getInputManager().getTouchX(identifier),
runtimeScene.getGame().getInputManager().getTouchY(identifier))[1];
};
gdjs.evtTools.input.getLastTouchId = function() {
return gdjs.evtTools.input.lastTouchId || 0;
};
gdjs.evtTools.input.getLastEndedTouchId = function() {
return gdjs.evtTools.input.lastEndedTouchId || 0;
};
gdjs.evtTools.input.popStartedTouch = function(runtimeScene) {
var startedTouchId = runtimeScene.getGame().getInputManager().popStartedTouch();
if (startedTouchId !== undefined) {
gdjs.evtTools.input.lastTouchId = startedTouchId;
return true;
}
return false;
};
gdjs.evtTools.input.popEndedTouch = function(runtimeScene) {
var endedTouchId = runtimeScene.getGame().getInputManager().popEndedTouch();
if (endedTouchId !== undefined) {
gdjs.evtTools.input.lastEndedTouchId = endedTouchId;
return true;
}
return false;
};
gdjs.evtTools.input.touchSimulateMouse = function(runtimeScene, enable) {
runtimeScene.getGame().getInputManager().touchSimulateMouse(enable);
};