Пример #1
0
 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();
         }
     }
 }
Пример #2
0
 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();
     }
 }
Пример #3
0
        //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();
            }
        }