示例#1
0
    private void DropNodes()
    {
        GameNode curr_node  = null;
        GameNode lower_node = null;
        int      new_indy   = 0;

        for (int row_indy = _map_height - 2; row_indy >= 0; row_indy--)
        {
            for (int col_indy = _map_width - 1; col_indy >= 0; col_indy--)
            {
                curr_node = _map[row_indy, col_indy];

                if (Equals(curr_node, null))
                {
                    continue;
                }

                new_indy   = row_indy + 1;
                lower_node = _map[new_indy, col_indy];
                Debug.LogFormat("{0}", curr_node);
                while (Equals(lower_node, null) || lower_node.IsDestroyed())
                {
                    _map[new_indy, col_indy]     = curr_node;
                    _map[new_indy - 1, col_indy] = null;

                    new_indy = new_indy + 1;
                    if (new_indy == _map_height)
                    {
                        break;
                    }
                    lower_node = _map[new_indy, col_indy];
                    Debug.Log(this);
                }
            }
        }
    }