void input() { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); if (key.Key == ConsoleKey.LeftArrow) { Move(0); } else if (key.Key == ConsoleKey.RightArrow) { Move(1); } else if (key.Key == ConsoleKey.UpArrow && !Collisions.rotateCollisionCheck(currTetromino, board)) { Rotate(1); board.DrawBoard(); } else if (key.Key == ConsoleKey.DownArrow && !Collisions.rotateCollisionCheck(currTetromino, board)) { Rotate(0); board.DrawBoard(); } else if (key.Key == ConsoleKey.Spacebar && !Collisions.dropCollisionCheck(currTetromino, board)) { Drop(); board.DrawBoard(); } } }
public void Update() { if (Collisions.dropCollisionCheck(currTetromino, board)) { deltaTime.Reset(); checkRows(); GenerateTetrominos(); Tetromino.Spawn(currTetromino, board); deltaTime.Start(); } if (deltaTime.ElapsedMilliseconds > dropRate) { Drop(); deltaTime.Restart(); board.DrawBoard(); } }
//moves current tetromino (0 is left, 1 is right) public void Move(int side) { EraseTetronimo(); if (side == 0 && currTetromino.x - 1 > 0 && !Collisions.sideCollisionCheck(0, currTetromino, board)) { currTetromino.x--; for (int i = 0; i < currTetromino.thisTetromino.GetLength(0); i++) { for (int j = 0; j < currTetromino.thisTetromino.GetLength(1); j++) { if (currTetromino.thisTetromino[i, j] != null) { board.Grid[currTetromino.y + i, currTetromino.x + j].x--; currTetromino.thisTetromino[i, j].x--; } } } DrawTetronimo(); board.DrawBoard(); } if (side == 1 && currTetromino.x + currTetromino.thisTetromino.GetLength(1) + 1 < board.Grid.GetLength(1) && !Collisions.sideCollisionCheck(1, currTetromino, board)) { currTetromino.x++; for (int i = 0; i < currTetromino.thisTetromino.GetLength(0); i++) { for (int j = 0; j < currTetromino.thisTetromino.GetLength(1); j++) { if (currTetromino.thisTetromino[i, j] != null) { board.Grid[currTetromino.y + i, currTetromino.x + j].x++; currTetromino.thisTetromino[i, j].x++; } } } DrawTetronimo(); board.DrawBoard(); } }