示例#1
0
        /// <summary>
        /// TetrisAnimation
        /// </summary>
        private static void TetrisAnimation(PixelList pixels, TetrisPieceList tetrisPieces)
        {
            pixels.BackGround(1);

            if (tetrisPieces.Any())
            {
                for (int anime = 0; anime < 10; anime++)
                {
                    foreach (TetrisPiece pieceTombe in tetrisPieces)
                    {
                        if (pixels.GetCoordonnee(pieceTombe.X, pieceTombe.Y) is Pixel pixel)
                        {
                            if (anime % 2 == 0)
                            {
                                foreach (TetrisPiece piece in tetrisPieces)
                                {
                                    piece.Couleur = Couleur.Noir;
                                }
                            }
                            else
                            {
                                foreach (TetrisPiece piece in tetrisPieces)
                                {
                                    piece.Couleur = piece.TmpCouleur;
                                }
                            }

                            pixel.SetColor(pieceTombe.Couleur);
                        }
                    }

                    Util.SetLeds();

                    using ManualResetEventSlim waitHandle = new ManualResetEventSlim(false);
                    waitHandle.Wait(TimeSpan.FromMilliseconds(40));
                }
            }
        }