Exemple #1
0
        //Next piece render blocks
        public TetrisRenderBlock[,] GetNextPieceRenderBlocks()
        {
            HasNextPieceStateChangedSinceRender = false;

            var result = new TetrisRenderBlock[4, 4];

            if (_nextConfigurations == null)
            {
                return(result);
            }

            for (var i = 0; i < 4; i++)
            {
                for (var j = 0; j < 4; j++)
                {
                    if (_nextConfigurations[0][i, j] == 0)
                    {
                        continue;
                    }

                    result[i, j].Color  = NumberToColor(_nextConfigurations[0][i, j]);
                    result[i, j].Active = true;
                }
            }


            return(result);
        }
Exemple #2
0
        //World render blocks
        public TetrisRenderBlock[,] GetRenderBlocks()
        {
            HasStateChangedSinceRender = false;

            var result = new TetrisRenderBlock[_width, _height];

            for (var i = 0; i < _width; i++)
            {
                for (var j = 0; j < _height; j++)
                {
                    if (_landedBlocks[i, j] != 0)
                    {
                        result[i, j].Color  = Dim(NumberToColor(_landedBlocks[i, j]));
                        result[i, j].Active = true;
                    }
                    else
                    {
                        result[i, j].Active = false;
                    }
                }
            }

            if (!_pieceActive)
            {
                return(result);
            }

            {
                for (var i = 0; i < 4; i++)
                {
                    for (var j = 0; j < 4; j++)
                    {
                        if (_controlledBlocks[i, j] == 0)
                        {
                            continue;
                        }

                        result[i + _cLeft, j + _cTop].Color  = NumberToColor(_controlledBlocks[i, j]);
                        result[i + _cLeft, j + _cTop].Active = true;
                    }
                }
            }

            return(result);
        }