Fix Tetris movement: Add shift modifier
This commit is contained in:
parent
aab96e73c5
commit
47bcbb7f4a
@ -7,6 +7,9 @@ const REMOTE_UPDATE_PATH =
|
||||
|
||||
("use strict");
|
||||
function createTetris() {
|
||||
|
||||
let keyMap = {};
|
||||
|
||||
var tetrominos = [
|
||||
{
|
||||
// box
|
||||
@ -183,25 +186,42 @@ function createTetris() {
|
||||
|
||||
var self = this;
|
||||
|
||||
window.addEventListener("keyup", function(e) {
|
||||
keyMap[e.code] = e.type == 'keydown';
|
||||
});
|
||||
|
||||
window.addEventListener("keydown", function (e) {
|
||||
switch (e.keyCode) {
|
||||
case 37:
|
||||
keyMap[e.code] = e.type == 'keydown';
|
||||
switch (e.code) {
|
||||
case "ArrowLeft":
|
||||
if (keyMap["ShiftLeft"] || keyMap["ShiftRight"]) {
|
||||
if (self.checkMovement(curPiece, -2, 0)) {
|
||||
curPiece.x -= 2;
|
||||
};
|
||||
break
|
||||
}
|
||||
if (self.checkMovement(curPiece, -1, 0)) {
|
||||
curPiece.x--;
|
||||
curPiece.x -= 1;
|
||||
}
|
||||
break;
|
||||
case 39:
|
||||
case "ArrowRight":
|
||||
if (keyMap["ShiftLeft"] || keyMap["ShiftRight"]) {
|
||||
if (self.checkMovement(curPiece, 2, 0)) {
|
||||
curPiece.x += 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (self.checkMovement(curPiece, 1, 0)) {
|
||||
curPiece.x++;
|
||||
curPiece.x += 1;
|
||||
}
|
||||
break;
|
||||
case 40:
|
||||
case "ArrowDown":
|
||||
if (self.checkMovement(curPiece, 0, 1)) {
|
||||
curPiece.y++;
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
case 38:
|
||||
case "ArrowUp":
|
||||
case "Space":
|
||||
curPiece.data = self.rotateTetrimono(curPiece);
|
||||
break;
|
||||
}
|
||||
@ -231,8 +251,8 @@ function createTetris() {
|
||||
} else {
|
||||
if (Date.now() > this.lastMove) {
|
||||
this.lastMove = Date.now() + this.curSpeed;
|
||||
if (this.checkMovement(curPiece, 0, 1)) {
|
||||
curPiece.y++;
|
||||
if (this.checkMovement(curPiece, 0, 0.5)) {
|
||||
curPiece.y += 0.5;
|
||||
} else {
|
||||
this.fillBoard(curPiece);
|
||||
this.newTetromino();
|
||||
|
Loading…
x
Reference in New Issue
Block a user