コード例 #1
0
    IEnumerator Drop()
    {
        bool overlappingDrop = dotsDropping;

        dotsDropping = true;

        // Drop dots column by column
        for (int k = 0; k < boardHeight; k++)
        {
            for (int i = 0; i < boardWidth; i++)
            {
                BoardSpace    curSpace        = BoardArray[i][k];
                DotController curDot          = curSpace.GetCurrentDot();
                bool          alreadyDropping = curDot.IsDropping;
                if (curSpace.IsEmpty || curDot.FlaggedToDrop || curDot.IsDropping)
                {
                    dotsToDrop++;
                    curDot.OnDropComplete += OnDropComplete;
                    curSpace.DropDot(dropTime);
                }
            }

            // offset each row's drop, if its not an overlapping drop call
            if (!overlappingDrop)
            {
                yield return(dropRow);
            }
        }
    }