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");
|
("use strict");
|
||||||
function createTetris() {
|
function createTetris() {
|
||||||
|
|
||||||
|
let keyMap = {};
|
||||||
|
|
||||||
var tetrominos = [
|
var tetrominos = [
|
||||||
{
|
{
|
||||||
// box
|
// box
|
||||||
@ -183,25 +186,42 @@ function createTetris() {
|
|||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
window.addEventListener("keyup", function(e) {
|
||||||
|
keyMap[e.code] = e.type == 'keydown';
|
||||||
|
});
|
||||||
|
|
||||||
window.addEventListener("keydown", function (e) {
|
window.addEventListener("keydown", function (e) {
|
||||||
switch (e.keyCode) {
|
keyMap[e.code] = e.type == 'keydown';
|
||||||
case 37:
|
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)) {
|
if (self.checkMovement(curPiece, -1, 0)) {
|
||||||
curPiece.x--;
|
curPiece.x -= 1;
|
||||||
}
|
}
|
||||||
break;
|
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)) {
|
if (self.checkMovement(curPiece, 1, 0)) {
|
||||||
curPiece.x++;
|
curPiece.x += 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 40:
|
case "ArrowDown":
|
||||||
if (self.checkMovement(curPiece, 0, 1)) {
|
if (self.checkMovement(curPiece, 0, 1)) {
|
||||||
curPiece.y++;
|
curPiece.y++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 32:
|
case "ArrowUp":
|
||||||
case 38:
|
case "Space":
|
||||||
curPiece.data = self.rotateTetrimono(curPiece);
|
curPiece.data = self.rotateTetrimono(curPiece);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -231,8 +251,8 @@ function createTetris() {
|
|||||||
} else {
|
} else {
|
||||||
if (Date.now() > this.lastMove) {
|
if (Date.now() > this.lastMove) {
|
||||||
this.lastMove = Date.now() + this.curSpeed;
|
this.lastMove = Date.now() + this.curSpeed;
|
||||||
if (this.checkMovement(curPiece, 0, 1)) {
|
if (this.checkMovement(curPiece, 0, 0.5)) {
|
||||||
curPiece.y++;
|
curPiece.y += 0.5;
|
||||||
} else {
|
} else {
|
||||||
this.fillBoard(curPiece);
|
this.fillBoard(curPiece);
|
||||||
this.newTetromino();
|
this.newTetromino();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user