Beispiel #1
0
        public void HoldPiece()
        {
            if (cGameState == GameState.Running)
            {
                if (hPiece.GetTetraType().Equals(Tetramino.TetraType.Empty))
                {
                    hPiece = cPiece.Hold();
                    cPiece = nPiece.Activate(StartPos);
                    nPiece = Tetramino.NextPiece();
                }
                else
                {
                    Tetramino tmpPiece = hPiece;
                    hPiece = cPiece.Hold();
                    cPiece = tmpPiece.Activate(cPiece.GetLocation());

                    // FIX
                    while (MoveCollision(new Point(0, 0)))
                    {
                        RotatePiece();
                        if (MoveCollision(new Point(0, 0)))
                        {
                            RotatePiece();
                        }
                        else
                        {
                            return;
                        }
                        if (MoveCollision(new Point(0, 0)))
                        {
                            RotatePiece();
                        }
                        else
                        {
                            return;
                        }
                        if (MoveCollision(new Point(0, 0)))
                        {
                            RotatePiece();
                        }
                        else
                        {
                            return;
                        }
                        cPiece.MoveUp();
                    }
                }
            }
        }
Beispiel #2
0
 private void NextPiece()
 {
     cPiece = nPiece.Activate(StartPos);
     nPiece = Tetramino.NextPiece();
 }