Exemplo n.º 1
0
        public void HoldPiece()
        {
            if (_canHold)
            {
                _activePiece.Despawn();

                if (_heldPiece == null)
                {
                    _heldPiece = _activePiece;
                    SpawnNextPiece();
                }
                else
                {
                    Tetrimino tempPiece = _heldPiece;
                    _heldPiece   = _activePiece;
                    _activePiece = tempPiece;
                    _activePiece.Spawn();
                    _activeOutline = GeneratePiece(_activePiece.GetBlockValue());
                }

                _holdSound.Play();
            }

            _canHold = false;
        }
Exemplo n.º 2
0
        public void SpawnNextPiece()
        {
            if (_randomPieceIndex > 6)
            {
                _randomPieceIndex = 0;
                ShuffleRandomPieceBag();
            }

            if (_nextPiece == null)
            {
                _nextPiece = GeneratePiece(_randomPieceBag[_randomPieceIndex]);
                _randomPieceIndex++;
            }

            _activePiece = _nextPiece;
            _activePiece.Spawn();
            _nextPiece = GeneratePiece(_randomPieceBag[_randomPieceIndex]);
            _randomPieceIndex++;

            // Create Piece For Outline
            _activeOutline = GeneratePiece(_activePiece.GetBlockValue());
        }