Esempio n. 1
0
        //Bewegung nach unten
        public void CurrTetraminoMoveDown()
        {
            Point Position = currTetramino.getCurrPosition();

            Point[] Shape = currTetramino.getCurrShape();
            bool    move  = true;

            currTetraminoErase();
            foreach (Point S in Shape)
            {
                //Bewegung aus Spielfeld heraus?
                if (((int)(S.Y + Position.Y) + 3) >= Rows)
                {
                    move = false;
                }
                //anderer Stein im Weg (Prüfung anhand der Farbe)?
                else if (BlockControls[((int)(S.X + Position.X) + ((Cols / 2) - 1)), (int)(S.Y + Position.Y) + 3].Background != NoBrush)
                {
                    move = false;
                }
            }
            //wenn Bewegung möglich -> bewegen
            if (move)
            {
                currTetramino.movDown();
                currTetraminoDraw();
            }
            //ansonsten liegt Stein bereits unten
            else
            {
                //neuen Stein erzeugen
                currTetraminoDraw();
                CheckRows();
                currTetramino = new Tetramino();
            }
        }