Path: blob/main/public/games/files/hextris/js/input.js
1036 views
function addKeyListeners() {1keypress.register_combo({2keys: "left",3on_keydown: function() {4if (MainHex && gameState !== 0) {5MainHex.rotate(1);6}7}8});910keypress.register_combo({11keys: "right",12on_keydown: function() {13if (MainHex && gameState !== 0){14MainHex.rotate(-1);15}16}17});18keypress.register_combo({19keys: "down",20on_keydown: function() {21var tempSpeed = settings.speedModifier;22if (MainHex && gameState !== 0){23//speed up block temporarily24if(settings.speedUpKeyHeld == false){25settings.speedUpKeyHeld = true;26window.rush *=4;27}28}29//settings.speedModifier = tempSpeed;30},31on_keyup:function(){32if (MainHex && gameState !== 0){33//speed up block temporarily3435window.rush /=4;36settings.speedUpKeyHeld = false;37}38}39});4041keypress.register_combo({42keys: "a",43on_keydown: function() {44if (MainHex && gameState !== 0) {45MainHex.rotate(1);46}47}48});4950keypress.register_combo({51keys: "d",52on_keydown: function() {53if (MainHex && gameState !== 0){54MainHex.rotate(-1);55}56}57});5859keypress.register_combo({60keys: "s",61on_keydown: function() {62var tempSpeed = settings.speedModifier;63if (MainHex && gameState !== 0){64//speed up block temporarily65if(settings.speedUpKeyHeld == false){66settings.speedUpKeyHeld = true;67window.rush *=4;68}69}70//settings.speedModifier = tempSpeed;71},72on_keyup:function(){73if (MainHex && gameState !== 0){74//speed up block temporarily7576window.rush /=4;77settings.speedUpKeyHeld = false;78}79}80});81keypress.register_combo({82keys: "p",83on_keydown: function(){pause();}84});8586keypress.register_combo({87keys: "space",88on_keydown: function(){pause();}89});9091keypress.register_combo({92keys: "q",93on_keydown: function() {94if (devMode) toggleDevTools();95}96});9798keypress.register_combo({99keys: "enter",100on_keydown: function() {101if (gameState==1 || importing == 1) {102init(1);103}104if (gameState == 2) {105init();106$("#gameoverscreen").fadeOut();107}108if (gameState===0) {109resumeGame();110}111}112});113114$("#pauseBtn").on('touchstart mousedown', function() {115if (gameState != 1 && gameState != -1) {116return;117}118119if ($('#helpScreen').is(":visible")) {120$('#helpScreen').fadeOut(150, "linear");121}122pause();123return false;124});125126$("#colorBlindBtn").on('touchstart mousedown', function() {127window.colors = ["#8e44ad", "#f1c40f", "#3498db", "#d35400"];128129window.hexColorsToTintedColors = {130"#8e44ad": "rgb(229,152,102)",131"#f1c40f": "rgb(246,223,133)",132"#3498db": "rgb(151,201,235)",133"#d35400": "rgb(210,180,222)"134};135136window.rgbToHex = {137"rgb(142,68,173)": "#8e44ad",138"rgb(241,196,15)": "#f1c40f",139"rgb(52,152,219)": "#3498db",140"rgb(211,84,0)": "#d35400"141};142143window.rgbColorsToTintedColors = {144"rgb(142,68,173)": "rgb(229,152,102)",145"rgb(241,196,15)": "rgb(246,223,133)",146"rgb(52,152,219)": "rgb(151,201,235)",147"rgb(46,204,113)": "rgb(210,180,222)"148};149});150151152if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {153$("#restart").on('touchstart', function() {154init();155canRestart = false;156$("#gameoverscreen").fadeOut();157});158159}160else {161$("#restart").on('mousedown', function() {162init();163canRestart = false;164$("#gameoverscreen").fadeOut();165});166167}168if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {169$("#restartBtn").on('touchstart', function() {170init(1);171canRestart = false;172$("#gameoverscreen").fadeOut();173});174175}176else {177$("#restartBtn").on('mousedown', function() {178init(1);179canRestart = false;180$("#gameoverscreen").fadeOut();181});182183184}185186}187function inside (point, vs) {188// ray-casting algorithm based on189// http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html190191var x = point[0], y = point[1];192193var inside = false;194for (var i = 0, j = vs.length - 1; i < vs.length; j = i++) {195var xi = vs[i][0], yi = vs[i][1];196var xj = vs[j][0], yj = vs[j][1];197198var intersect = ((yi > y) != (yj > y))199&& (x < (xj - xi) * (y - yi) / (yj - yi) + xi);200if (intersect) inside = !inside;201}202203return inside;204};205206function handleClickTap(x,y) {207if (x < 120 && y < 83 && $('.helpText').is(':visible')) {208showHelp();209return;210}211var radius = settings.hexWidth ;212var halfRadius = radius/2;213var triHeight = radius *(Math.sqrt(3)/2);214var Vertexes =[215[radius,0],216[halfRadius,-triHeight],217[-halfRadius,-triHeight],218[-radius,0],219[-halfRadius,triHeight],220[halfRadius,triHeight]];221Vertexes = Vertexes.map(function(coord){222return [coord[0] + trueCanvas.width/2, coord[1] + trueCanvas.height/2]});223224if (!MainHex || gameState === 0 || gameState==-1) {225return;226}227228if (x < window.innerWidth/2) {229MainHex.rotate(1);230}231if (x > window.innerWidth/2) {232MainHex.rotate(-1);233}234}235236237238