level and speed change.
This commit is contained in:
parent
bc9da21be1
commit
0d8b03841b
@ -17,7 +17,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="tetris" class="tetris">
|
<div id="tetris" class="tetris">
|
||||||
<canvas id="tetris-canvas" width="200" height="400"></canvas>
|
<canvas id="tetris-canvas" width="300" height="600"></canvas>
|
||||||
</div>
|
</div>
|
||||||
<div class="last"></div>
|
<div class="last"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@ let leftInterval;
|
|||||||
let keyPress = [];
|
let keyPress = [];
|
||||||
|
|
||||||
let score = 0;
|
let score = 0;
|
||||||
let level = 1;
|
let level = 0;
|
||||||
let lines = 0;
|
let lines = 0;
|
||||||
let speed = 1000;
|
let speed = 1000;
|
||||||
|
|
||||||
@ -98,6 +98,39 @@ const templateColor = [
|
|||||||
[255, 40, 130, 200]
|
[255, 40, 130, 200]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const speedSecondsToBotomPerLevel = [
|
||||||
|
15.974, //0
|
||||||
|
14.31, //1
|
||||||
|
12.646, //2
|
||||||
|
10.982, //3
|
||||||
|
9.318, //4
|
||||||
|
7.654, //5
|
||||||
|
5.99, //6
|
||||||
|
4.326, //7
|
||||||
|
2.662, //8
|
||||||
|
1.997, //9
|
||||||
|
1.664, //10
|
||||||
|
1.664, //11
|
||||||
|
1.664, //12
|
||||||
|
1.331, //13
|
||||||
|
1.331, //14
|
||||||
|
1.331, //15
|
||||||
|
0.998, //16
|
||||||
|
0.998, //17
|
||||||
|
0.998, //18
|
||||||
|
0.666, //19
|
||||||
|
0.666, //20
|
||||||
|
0.666, //21
|
||||||
|
0.666, //22
|
||||||
|
0.666, //23
|
||||||
|
0.666, //24
|
||||||
|
0.666, //25
|
||||||
|
0.666, //26
|
||||||
|
0.666, //27
|
||||||
|
0.666, //28
|
||||||
|
0.333 //29
|
||||||
|
];
|
||||||
|
|
||||||
let currentPiece = [];
|
let currentPiece = [];
|
||||||
let color = []
|
let color = []
|
||||||
|
|
||||||
@ -304,6 +337,10 @@ function checkLine() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (let k = 0; k < 10; k++) {
|
||||||
|
boardData[k][0] = [0, 0, 0, 255];
|
||||||
|
}
|
||||||
|
|
||||||
lineFilled++;
|
lineFilled++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,6 +359,24 @@ function checkLine() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scoreElement.innerText = score;
|
scoreElement.innerText = score;
|
||||||
|
lines += lineFilled;
|
||||||
|
level = Math.floor(lines / 10);
|
||||||
|
initAndChangeSpeedDrop();
|
||||||
|
}
|
||||||
|
|
||||||
|
function initAndChangeSpeedDrop() {
|
||||||
|
if (level > 29) {
|
||||||
|
speed = (speedSecondsToBotomPerLevel[29]/20) * 1000;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
speed = (speedSecondsToBotomPerLevel[level]/20) * 1000;
|
||||||
|
}
|
||||||
|
clearInterval(downInterval);
|
||||||
|
downInterval = setInterval(() => {
|
||||||
|
moveDown();
|
||||||
|
|
||||||
|
refresh();
|
||||||
|
}, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
function moveTo(x, y) {
|
function moveTo(x, y) {
|
||||||
@ -380,6 +435,7 @@ function fasteDrop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
img.onload = () => {
|
img.onload = () => {
|
||||||
|
initAndChangeSpeedDrop();
|
||||||
loadTetris();
|
loadTetris();
|
||||||
refresh();
|
refresh();
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tetris {
|
.tetris {
|
||||||
width: 200px;
|
width: 300px;
|
||||||
height: 400px;
|
height: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.first {
|
.first {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user