通过制作俄罗斯方块游戏来学习 JavaScript。
问题:当我尝试移动(从起始位置向左、向右或向下)一块然后旋转它时,旋转的部分会伸展开来。当我回到起始位置时,一切正常。此外,当我不旋转作品而只将其向左/向右/向下移动时,一切都很好。我想我的旋转中心固定在网格上,而不是固定在一块上。
在这里你可以玩游戏:这里
这是我的github:这里
临时控制:
输入和向上箭头后:开始游戏
左箭头:向左移动
右箭头:向右移动
向上箭头:旋转
向下箭头:向下移动一排
描述:
我的 tetrominoes 和我的网格由数组(基于类)组成。网格来自 SimpleBlock{} 和 GridBlock{}。我的四联牌是由 Simple Block{} 制作的,并且
class SimpleBlock{
constructor(tempSquareColor, boardPosX, boardPosY){
this.x = boardPosX;
this.y = boardPosY;
this.squareColor = tempSquareColor;
}
}
class GridBlock extends SimpleBlock{
constructor(tempSquareColor, boardPosX, boardPosY){
super(tempSquareColor, boardPosX, boardPosY);
ctx.fillStyle = this.squareColor;
ctx.strokeStyle = "black";
ctx.lineWidth = 3;
ctx.fillRect(this.x * squareSize, this.y * squareSize, squareSize, squareSize);
ctx.strokeRect(this.x * squareSize, this.y * squareSize, squareSize, squareSize);
}
}
var gameBoardSquared = [];
function drawSquaredGameBoard() {
for(var row = 0; row < gameBoardRows; row++){
gameBoardSquared[row] = [];
for(var col = 0; col < gameBoardColumns; col++){
gameBoardSquared[row][col] = new GridBlock("white", row, col);
}
}
}
海绵宝宝撒
相关分类